From cd79217177aad95ec04510381ae2a3bc1da4b4d5 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 31 Jan 2024 04:19:47 +0000 Subject: [PATCH] Add build files 2024-01-31-0419 --- .github/workflows/osx.yml | 1109 +++++++++++++++++ activate.bat | 15 + activate.ps1 | 16 + activate.sh | 26 + bld_ament_cmake.bat | 38 + bld_ament_python.bat | 21 + bld_catkin.bat | 80 ++ bld_catkin_merge.bat | 34 + bld_colcon_merge.bat | 28 + build_ament_cmake.sh | 68 + build_ament_python.sh | 19 + build_catkin.sh | 119 ++ buildorder.txt | 205 +++ deactivate.bat | 18 + deactivate.ps1 | 18 + deactivate.sh | 21 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 77 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 59 + recipes/ros-noetic-actionlib/bld_catkin.bat | 80 ++ recipes/ros-noetic-actionlib/build_catkin.sh | 119 ++ .../patch/ros-noetic-actionlib.patch | 264 ++++ recipes/ros-noetic-actionlib/recipe.yaml | 68 + recipes/ros-noetic-amcl/bld_catkin.bat | 80 ++ recipes/ros-noetic-amcl/build_catkin.sh | 119 ++ recipes/ros-noetic-amcl/recipe.yaml | 78 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-base-local-planner/recipe.yaml | 89 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 64 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-camera-calibration/recipe.yaml | 63 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 64 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-chomp-motion-planner.osx.patch | 16 + .../recipe.yaml | 54 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 64 + recipes/ros-noetic-common-msgs/bld_catkin.bat | 80 ++ .../ros-noetic-common-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-common-msgs/recipe.yaml | 68 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-common-tutorials/recipe.yaml | 58 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 56 + .../ros-noetic-control-toolbox/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-control-toolbox/recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 57 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-controller-manager/recipe.yaml | 65 + recipes/ros-noetic-costmap-2d/bld_catkin.bat | 80 ++ recipes/ros-noetic-costmap-2d/build_catkin.sh | 119 ++ recipes/ros-noetic-costmap-2d/recipe.yaml | 91 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../patch/ros-noetic-costmap-converter.patch | 77 ++ .../ros-noetic-costmap-converter/recipe.yaml | 70 ++ recipes/ros-noetic-cv-bridge/bld_catkin.bat | 80 ++ recipes/ros-noetic-cv-bridge/build_catkin.sh | 119 ++ .../patch/ros-noetic-cv-bridge.patch | 35 + recipes/ros-noetic-cv-bridge/recipe.yaml | 76 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-depth-image-proc/recipe.yaml | 72 ++ .../ros-noetic-desktop-full/bld_catkin.bat | 80 ++ .../ros-noetic-desktop-full/build_catkin.sh | 119 ++ recipes/ros-noetic-desktop-full/recipe.yaml | 54 + recipes/ros-noetic-desktop/bld_catkin.bat | 80 ++ recipes/ros-noetic-desktop/build_catkin.sh | 119 ++ recipes/ros-noetic-desktop/recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 59 + recipes/ros-noetic-diagnostics/bld_catkin.bat | 80 ++ .../ros-noetic-diagnostics/build_catkin.sh | 119 ++ recipes/ros-noetic-diagnostics/recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 78 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 64 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-effort-controllers/recipe.yaml | 77 ++ .../ros-noetic-executive-smach/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-executive-smach/recipe.yaml | 53 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-fake-localization/recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + recipes/ros-noetic-gazebo-msgs/bld_catkin.bat | 80 ++ .../ros-noetic-gazebo-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-gazebo-msgs/recipe.yaml | 62 + .../ros-noetic-gazebo-plugins/bld_catkin.bat | 80 ++ .../ros-noetic-gazebo-plugins/build_catkin.sh | 119 ++ .../patch/ros-noetic-gazebo-plugins.osx.patch | 13 + .../patch/ros-noetic-gazebo-plugins.patch | 13 + recipes/ros-noetic-gazebo-plugins/recipe.yaml | 108 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-gazebo-ros-control.osx.patch | 13 + .../ros-noetic-gazebo-ros-control/recipe.yaml | 76 ++ .../ros-noetic-gazebo-ros-pkgs/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-gazebo-ros-pkgs/recipe.yaml | 54 + recipes/ros-noetic-gazebo-ros/bld_catkin.bat | 80 ++ recipes/ros-noetic-gazebo-ros/build_catkin.sh | 119 ++ .../patch/ros-noetic-gazebo-ros.osx.patch | 14 + recipes/ros-noetic-gazebo-ros/recipe.yaml | 77 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-geometry-tutorials/recipe.yaml | 54 + recipes/ros-noetic-geometry/bld_catkin.bat | 80 ++ recipes/ros-noetic-geometry/build_catkin.sh | 119 ++ recipes/ros-noetic-geometry/recipe.yaml | 60 + recipes/ros-noetic-geometry2/bld_catkin.bat | 80 ++ recipes/ros-noetic-geometry2/build_catkin.sh | 119 ++ recipes/ros-noetic-geometry2/recipe.yaml | 70 ++ recipes/ros-noetic-gmapping/bld_catkin.bat | 80 ++ recipes/ros-noetic-gmapping/build_catkin.sh | 119 ++ .../patch/ros-noetic-gmapping.patch | 13 + recipes/ros-noetic-gmapping/recipe.yaml | 63 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 67 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 58 + .../ros-noetic-image-common/bld_catkin.bat | 80 ++ .../ros-noetic-image-common/build_catkin.sh | 119 ++ recipes/ros-noetic-image-common/recipe.yaml | 58 + .../ros-noetic-image-geometry/bld_catkin.bat | 80 ++ .../ros-noetic-image-geometry/build_catkin.sh | 119 ++ recipes/ros-noetic-image-geometry/recipe.yaml | 69 + .../ros-noetic-image-pipeline/bld_catkin.bat | 80 ++ .../ros-noetic-image-pipeline/build_catkin.sh | 119 ++ recipes/ros-noetic-image-pipeline/recipe.yaml | 64 + recipes/ros-noetic-image-proc/bld_catkin.bat | 80 ++ recipes/ros-noetic-image-proc/build_catkin.sh | 119 ++ recipes/ros-noetic-image-proc/recipe.yaml | 69 + .../ros-noetic-image-publisher/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-image-publisher/recipe.yaml | 64 + .../ros-noetic-image-rotate/bld_catkin.bat | 80 ++ .../ros-noetic-image-rotate/build_catkin.sh | 119 ++ recipes/ros-noetic-image-rotate/recipe.yaml | 69 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 56 + .../ros-noetic-image-transport/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-image-transport/recipe.yaml | 62 + recipes/ros-noetic-image-view/bld_catkin.bat | 80 ++ recipes/ros-noetic-image-view/build_catkin.sh | 119 ++ recipes/ros-noetic-image-view/recipe.yaml | 85 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 67 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 71 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + recipes/ros-noetic-imu-tools/bld_catkin.bat | 80 ++ recipes/ros-noetic-imu-tools/build_catkin.sh | 119 ++ recipes/ros-noetic-imu-tools/recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...-noetic-interactive-marker-tutorials.patch | 45 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...ros-noetic-joint-state-publisher-gui.patch | 22 + .../recipe.yaml | 55 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 53 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 78 ++ .../ros-noetic-laser-assembler/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-laser-assembler/recipe.yaml | 68 + .../ros-noetic-laser-filters/bld_catkin.bat | 80 ++ .../ros-noetic-laser-filters/build_catkin.sh | 119 ++ recipes/ros-noetic-laser-filters/recipe.yaml | 71 ++ .../ros-noetic-laser-geometry/bld_catkin.bat | 80 ++ .../ros-noetic-laser-geometry/build_catkin.sh | 119 ++ recipes/ros-noetic-laser-geometry/recipe.yaml | 67 + .../ros-noetic-laser-pipeline/bld_catkin.bat | 80 ++ .../ros-noetic-laser-pipeline/build_catkin.sh | 119 ++ recipes/ros-noetic-laser-pipeline/recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../patch/ros-noetic-librviz-tutorial.patch | 23 + .../ros-noetic-librviz-tutorial/recipe.yaml | 71 ++ recipes/ros-noetic-map-msgs/bld_catkin.bat | 80 ++ recipes/ros-noetic-map-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-map-msgs/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-mbf-costmap-core/recipe.yaml | 64 + recipes/ros-noetic-mbf-utility/bld_catkin.bat | 80 ++ .../ros-noetic-mbf-utility/build_catkin.sh | 119 ++ recipes/ros-noetic-mbf-utility/recipe.yaml | 62 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...s-noetic-microstrain-inertial-driver.patch | 39 + .../recipe.yaml | 86 ++ recipes/ros-noetic-move-base/bld_catkin.bat | 80 ++ recipes/ros-noetic-move-base/build_catkin.sh | 119 ++ recipes/ros-noetic-move-base/recipe.yaml | 88 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-moveit-commander/recipe.yaml | 61 + recipes/ros-noetic-moveit-core/bld_catkin.bat | 80 ++ .../ros-noetic-moveit-core/build_catkin.sh | 119 ++ recipes/ros-noetic-moveit-core/recipe.yaml | 122 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 58 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-moveit-kinematics/recipe.yaml | 74 ++ recipes/ros-noetic-moveit-msgs/bld_catkin.bat | 80 ++ .../ros-noetic-moveit-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-moveit-msgs/recipe.yaml | 69 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-moveit-planners-ompl.osx.patch | 28 + .../recipe.yaml | 74 ++ .../ros-noetic-moveit-planners/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-moveit-planners/recipe.yaml | 54 + .../ros-noetic-moveit-plugins/bld_catkin.bat | 80 ++ .../ros-noetic-moveit-plugins/build_catkin.sh | 119 ++ recipes/ros-noetic-moveit-plugins/recipe.yaml | 53 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 64 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...urces-prbt-ikfast-manipulator-plugin.patch | 28 + .../recipe.yaml | 63 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 54 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 71 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 71 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...moveit-ros-occupancy-map-monitor.osx.patch | 15 + .../recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...ros-noetic-moveit-ros-perception.osx.patch | 85 ++ .../recipe.yaml | 107 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...noetic-moveit-ros-planning-interface.patch | 87 ++ .../recipe.yaml | 87 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 85 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 65 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 95 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + recipes/ros-noetic-moveit-ros/bld_catkin.bat | 80 ++ recipes/ros-noetic-moveit-ros/build_catkin.sh | 119 ++ recipes/ros-noetic-moveit-ros/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 88 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-moveit-visual-tools.patch | 13 + .../recipe.yaml | 91 ++ recipes/ros-noetic-moveit/bld_catkin.bat | 80 ++ recipes/ros-noetic-moveit/build_catkin.sh | 119 ++ recipes/ros-noetic-moveit/recipe.yaml | 56 + recipes/ros-noetic-nav-core/bld_catkin.bat | 80 ++ recipes/ros-noetic-nav-core/build_catkin.sh | 119 ++ recipes/ros-noetic-nav-core/recipe.yaml | 58 + recipes/ros-noetic-navfn/bld_catkin.bat | 80 ++ recipes/ros-noetic-navfn/build_catkin.sh | 119 ++ recipes/ros-noetic-navfn/recipe.yaml | 75 ++ .../ros-noetic-nodelet-core/bld_catkin.bat | 80 ++ .../ros-noetic-nodelet-core/build_catkin.sh | 119 ++ recipes/ros-noetic-nodelet-core/recipe.yaml | 52 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 62 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 63 + recipes/ros-noetic-octomap-ros/bld_catkin.bat | 80 ++ .../ros-noetic-octomap-ros/build_catkin.sh | 119 ++ recipes/ros-noetic-octomap-ros/recipe.yaml | 58 + .../ros-noetic-pcl-conversions/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-pcl-conversions/recipe.yaml | 75 ++ recipes/ros-noetic-pcl-msgs/bld_catkin.bat | 80 ++ recipes/ros-noetic-pcl-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-pcl-msgs/recipe.yaml | 57 + recipes/ros-noetic-pcl-ros/bld_catkin.bat | 80 ++ recipes/ros-noetic-pcl-ros/build_catkin.sh | 119 ++ .../patch/ros-noetic-pcl-ros.patch | 985 +++++++++++++++ recipes/ros-noetic-pcl-ros/recipe.yaml | 104 ++ .../ros-noetic-perception-pcl/bld_catkin.bat | 80 ++ .../ros-noetic-perception-pcl/build_catkin.sh | 119 ++ recipes/ros-noetic-perception-pcl/recipe.yaml | 53 + recipes/ros-noetic-perception/bld_catkin.bat | 80 ++ recipes/ros-noetic-perception/build_catkin.sh | 119 ++ recipes/ros-noetic-perception/recipe.yaml | 57 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 57 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ ...oetic-pilz-industrial-motion-planner.patch | 54 + .../recipe.yaml | 89 ++ .../ros-noetic-plotjuggler-ros/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-plotjuggler-ros/recipe.yaml | 81 ++ .../ros-noetic-polled-camera/bld_catkin.bat | 80 ++ .../ros-noetic-polled-camera/build_catkin.sh | 119 ++ recipes/ros-noetic-polled-camera/recipe.yaml | 61 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 58 + .../ros-noetic-realtime-tools/bld_catkin.bat | 80 ++ .../ros-noetic-realtime-tools/build_catkin.sh | 119 ++ .../patch/ros-noetic-realtime-tools.patch | 30 + recipes/ros-noetic-realtime-tools/recipe.yaml | 58 + recipes/ros-noetic-rgbd-launch/bld_catkin.bat | 80 ++ .../ros-noetic-rgbd-launch/build_catkin.sh | 119 ++ recipes/ros-noetic-rgbd-launch/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../patch/ros-noetic-robot-localization.patch | 14 + .../ros-noetic-robot-localization/recipe.yaml | 99 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 72 ++ recipes/ros-noetic-robot/bld_catkin.bat | 80 ++ recipes/ros-noetic-robot/build_catkin.sh | 119 ++ recipes/ros-noetic-robot/recipe.yaml | 62 + .../ros-noetic-ros-babel-fish/bld_catkin.bat | 80 ++ .../ros-noetic-ros-babel-fish/build_catkin.sh | 119 ++ .../patch/ros-noetic-ros-babel-fish.patch | 533 ++++++++ recipes/ros-noetic-ros-babel-fish/recipe.yaml | 69 + recipes/ros-noetic-ros-base/bld_catkin.bat | 80 ++ recipes/ros-noetic-ros-base/build_catkin.sh | 119 ++ recipes/ros-noetic-ros-base/recipe.yaml | 55 + recipes/ros-noetic-ros-comm/bld_catkin.bat | 80 ++ recipes/ros-noetic-ros-comm/build_catkin.sh | 119 ++ recipes/ros-noetic-ros-comm/recipe.yaml | 94 ++ recipes/ros-noetic-ros-control/bld_catkin.bat | 80 ++ .../ros-noetic-ros-control/build_catkin.sh | 119 ++ recipes/ros-noetic-ros-control/recipe.yaml | 58 + .../ros-noetic-ros-controllers/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-ros-controllers/recipe.yaml | 61 + recipes/ros-noetic-ros-core/bld_catkin.bat | 80 ++ recipes/ros-noetic-ros-core/build_catkin.sh | 119 ++ recipes/ros-noetic-ros-core/recipe.yaml | 74 ++ recipes/ros-noetic-rosapi/bld_catkin.bat | 80 ++ recipes/ros-noetic-rosapi/build_catkin.sh | 119 ++ recipes/ros-noetic-rosapi/recipe.yaml | 57 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rosbridge-library/recipe.yaml | 78 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rosbridge-server/recipe.yaml | 60 + .../ros-noetic-rosbridge-suite/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rosbridge-suite/recipe.yaml | 53 + recipes/ros-noetic-rosnode/bld_catkin.bat | 80 ++ recipes/ros-noetic-rosnode/build_catkin.sh | 119 ++ recipes/ros-noetic-rosnode/recipe.yaml | 55 + recipes/ros-noetic-rosservice/bld_catkin.bat | 80 ++ recipes/ros-noetic-rosservice/build_catkin.sh | 119 ++ recipes/ros-noetic-rosservice/recipe.yaml | 60 + recipes/ros-noetic-roswtf/bld_catkin.bat | 80 ++ recipes/ros-noetic-roswtf/build_catkin.sh | 119 ++ recipes/ros-noetic-roswtf/recipe.yaml | 63 + .../ros-noetic-rotate-recovery/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rotate-recovery/recipe.yaml | 71 ++ recipes/ros-noetic-rqt-action/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-action/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-action/recipe.yaml | 56 + .../ros-noetic-rqt-bag-plugins/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-bag-plugins/recipe.yaml | 62 + recipes/ros-noetic-rqt-bag/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-bag/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-bag/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-common-plugins/recipe.yaml | 71 ++ recipes/ros-noetic-rqt-console/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-console/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-console/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 55 + recipes/ros-noetic-rqt-dep/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-dep/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-dep/recipe.yaml | 58 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-ez-publisher/recipe.yaml | 67 + recipes/ros-noetic-rqt-graph/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-graph/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-graph/recipe.yaml | 62 + .../ros-noetic-rqt-image-view/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-image-view/build_catkin.sh | 119 ++ .../patch/ros-noetic-rqt-image-view.patch | 25 + recipes/ros-noetic-rqt-image-view/recipe.yaml | 79 ++ recipes/ros-noetic-rqt-launch/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-launch/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-launch/recipe.yaml | 64 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-logger-level/recipe.yaml | 58 + recipes/ros-noetic-rqt-moveit/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-moveit/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-moveit/recipe.yaml | 60 + recipes/ros-noetic-rqt-msg/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-msg/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-msg/recipe.yaml | 59 + .../ros-noetic-rqt-nav-view/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-nav-view/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-nav-view/recipe.yaml | 68 + recipes/ros-noetic-rqt-plot/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-plot/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-plot/recipe.yaml | 62 + .../ros-noetic-rqt-pose-view/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-pose-view/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-pose-view/recipe.yaml | 74 ++ .../ros-noetic-rqt-publisher/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-publisher/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-publisher/recipe.yaml | 58 + .../ros-noetic-rqt-py-common/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-py-common/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-py-common/recipe.yaml | 68 + .../ros-noetic-rqt-reconfigure/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-reconfigure/recipe.yaml | 61 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-robot-monitor/recipe.yaml | 61 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-robot-plugins/recipe.yaml | 68 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-robot-steering/recipe.yaml | 56 + recipes/ros-noetic-rqt-rviz/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-rviz/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-rviz/recipe.yaml | 75 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rqt-service-caller/recipe.yaml | 55 + recipes/ros-noetic-rqt-srv/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-srv/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-srv/recipe.yaml | 60 + recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat | 80 ++ .../ros-noetic-rqt-tf-tree/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-tf-tree/recipe.yaml | 61 + recipes/ros-noetic-rqt-topic/bld_catkin.bat | 80 ++ recipes/ros-noetic-rqt-topic/build_catkin.sh | 119 ++ recipes/ros-noetic-rqt-topic/recipe.yaml | 56 + .../ros-noetic-rviz-imu-plugin/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../patch/ros-noetic-rviz-imu-plugin.patch | 23 + .../ros-noetic-rviz-imu-plugin/recipe.yaml | 71 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rviz-plugin-tutorials.patch | 23 + .../recipe.yaml | 69 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 52 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-rviz-visual-tools/recipe.yaml | 99 ++ recipes/ros-noetic-rviz/bld_catkin.bat | 80 ++ recipes/ros-noetic-rviz/build_catkin.sh | 119 ++ .../patch/ros-noetic-rviz.osx.patch | 241 ++++ .../patch/ros-noetic-rviz.patch | 126 ++ recipes/ros-noetic-rviz/recipe.yaml | 129 ++ recipes/ros-noetic-simulators/bld_catkin.bat | 80 ++ recipes/ros-noetic-simulators/build_catkin.sh | 119 ++ recipes/ros-noetic-simulators/recipe.yaml | 54 + recipes/ros-noetic-smach-ros/bld_catkin.bat | 80 ++ recipes/ros-noetic-smach-ros/build_catkin.sh | 119 ++ recipes/ros-noetic-smach-ros/recipe.yaml | 59 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-stereo-image-proc/recipe.yaml | 69 + recipes/ros-noetic-stereo-msgs/bld_catkin.bat | 80 ++ .../ros-noetic-stereo-msgs/build_catkin.sh | 119 ++ recipes/ros-noetic-stereo-msgs/recipe.yaml | 57 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-teb-local-planner.osx.patch | 739 +++++++++++ .../ros-noetic-teb-local-planner/recipe.yaml | 92 ++ .../ros-noetic-tf-conversions/bld_catkin.bat | 80 ++ .../ros-noetic-tf-conversions/build_catkin.sh | 119 ++ recipes/ros-noetic-tf-conversions/recipe.yaml | 61 + recipes/ros-noetic-tf/bld_catkin.bat | 80 ++ recipes/ros-noetic-tf/build_catkin.sh | 119 ++ recipes/ros-noetic-tf/recipe.yaml | 75 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-tf2-geometry-msgs/recipe.yaml | 62 + recipes/ros-noetic-tf2-kdl/bld_catkin.bat | 80 ++ recipes/ros-noetic-tf2-kdl/build_catkin.sh | 119 ++ recipes/ros-noetic-tf2-kdl/recipe.yaml | 61 + recipes/ros-noetic-tf2-ros/bld_catkin.bat | 80 ++ recipes/ros-noetic-tf2-ros/build_catkin.sh | 119 ++ recipes/ros-noetic-tf2-ros/recipe.yaml | 75 ++ .../ros-noetic-tf2-sensor-msgs/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-tf2-sensor-msgs/recipe.yaml | 63 + recipes/ros-noetic-tf2-tools/bld_catkin.bat | 80 ++ recipes/ros-noetic-tf2-tools/build_catkin.sh | 119 ++ recipes/ros-noetic-tf2-tools/recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 69 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtle-actionlib/recipe.yaml | 69 + recipes/ros-noetic-turtle-tf/bld_catkin.bat | 80 ++ recipes/ros-noetic-turtle-tf/build_catkin.sh | 119 ++ recipes/ros-noetic-turtle-tf/recipe.yaml | 62 + recipes/ros-noetic-turtle-tf2/bld_catkin.bat | 80 ++ recipes/ros-noetic-turtle-tf2/build_catkin.sh | 119 ++ recipes/ros-noetic-turtle-tf2/recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtlebot3-bringup/recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtlebot3-example/recipe.yaml | 74 ++ .../ros-noetic-turtlebot3-fake/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtlebot3-fake/recipe.yaml | 65 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtlebot3-gazebo/recipe.yaml | 66 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 54 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 52 + .../ros-noetic-turtlebot3-slam/bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-turtlebot3-slam/recipe.yaml | 55 + recipes/ros-noetic-turtlebot3/bld_catkin.bat | 80 ++ recipes/ros-noetic-turtlebot3/build_catkin.sh | 119 ++ recipes/ros-noetic-turtlebot3/recipe.yaml | 56 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-urdf-sim-tutorial/recipe.yaml | 72 ++ .../ros-noetic-urdf-tutorial/bld_catkin.bat | 80 ++ .../ros-noetic-urdf-tutorial/build_catkin.sh | 119 ++ recipes/ros-noetic-urdf-tutorial/recipe.yaml | 61 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 70 ++ .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 58 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../ros-noetic-velodyne-simulator/recipe.yaml | 52 + .../ros-noetic-vision-opencv/bld_catkin.bat | 80 ++ .../ros-noetic-vision-opencv/build_catkin.sh | 119 ++ recipes/ros-noetic-vision-opencv/recipe.yaml | 54 + .../bld_catkin.bat | 80 ++ .../build_catkin.sh | 119 ++ .../recipe.yaml | 60 + recipes/ros-noetic-viz/bld_catkin.bat | 80 ++ recipes/ros-noetic-viz/build_catkin.sh | 119 ++ recipes/ros-noetic-viz/recipe.yaml | 54 + .../ros-noetic-warehouse-ros/bld_catkin.bat | 80 ++ .../ros-noetic-warehouse-ros/build_catkin.sh | 119 ++ recipes/ros-noetic-warehouse-ros/recipe.yaml | 66 + vinca.yaml | 894 +++++++++++++ vinca_f77689b8dc.json | 1 + 663 files changed, 60738 insertions(+) create mode 100644 .github/workflows/osx.yml create mode 100644 activate.bat create mode 100644 activate.ps1 create mode 100644 activate.sh create mode 100644 bld_ament_cmake.bat create mode 100644 bld_ament_python.bat create mode 100644 bld_catkin.bat create mode 100644 bld_catkin_merge.bat create mode 100644 bld_colcon_merge.bat create mode 100644 build_ament_cmake.sh create mode 100644 build_ament_python.sh create mode 100644 build_catkin.sh create mode 100644 buildorder.txt create mode 100644 deactivate.bat create mode 100644 deactivate.ps1 create mode 100644 deactivate.sh create mode 100644 recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-ackermann-steering-controller/recipe.yaml create mode 100644 recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-actionlib-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-actionlib-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-actionlib/bld_catkin.bat create mode 100644 recipes/ros-noetic-actionlib/build_catkin.sh create mode 100644 recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch create mode 100644 recipes/ros-noetic-actionlib/recipe.yaml create mode 100644 recipes/ros-noetic-amcl/bld_catkin.bat create mode 100644 recipes/ros-noetic-amcl/build_catkin.sh create mode 100644 recipes/ros-noetic-amcl/recipe.yaml create mode 100644 recipes/ros-noetic-base-local-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-base-local-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-base-local-planner/recipe.yaml create mode 100644 recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-calibration-parsers/recipe.yaml create mode 100644 recipes/ros-noetic-camera-calibration/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-calibration/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-calibration/recipe.yaml create mode 100644 recipes/ros-noetic-camera-info-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-info-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-info-manager/recipe.yaml create mode 100644 recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-chomp-motion-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch create mode 100644 recipes/ros-noetic-chomp-motion-planner/recipe.yaml create mode 100644 recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat create mode 100644 recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh create mode 100644 recipes/ros-noetic-clear-costmap-recovery/recipe.yaml create mode 100644 recipes/ros-noetic-common-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-common-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-common-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-common-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-common-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-common-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-compressed-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-compressed-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-compressed-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-control-toolbox/bld_catkin.bat create mode 100644 recipes/ros-noetic-control-toolbox/build_catkin.sh create mode 100644 recipes/ros-noetic-control-toolbox/recipe.yaml create mode 100644 recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-controller-manager-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-controller-manager-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-costmap-2d/bld_catkin.bat create mode 100644 recipes/ros-noetic-costmap-2d/build_catkin.sh create mode 100644 recipes/ros-noetic-costmap-2d/recipe.yaml create mode 100644 recipes/ros-noetic-costmap-converter/bld_catkin.bat create mode 100644 recipes/ros-noetic-costmap-converter/build_catkin.sh create mode 100644 recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch create mode 100644 recipes/ros-noetic-costmap-converter/recipe.yaml create mode 100644 recipes/ros-noetic-cv-bridge/bld_catkin.bat create mode 100644 recipes/ros-noetic-cv-bridge/build_catkin.sh create mode 100644 recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch create mode 100644 recipes/ros-noetic-cv-bridge/recipe.yaml create mode 100644 recipes/ros-noetic-depth-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-depth-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-depth-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-desktop-full/bld_catkin.bat create mode 100644 recipes/ros-noetic-desktop-full/build_catkin.sh create mode 100644 recipes/ros-noetic-desktop-full/recipe.yaml create mode 100644 recipes/ros-noetic-desktop/bld_catkin.bat create mode 100644 recipes/ros-noetic-desktop/build_catkin.sh create mode 100644 recipes/ros-noetic-desktop/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostics/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostics/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostics/recipe.yaml create mode 100644 recipes/ros-noetic-diff-drive-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-diff-drive-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-diff-drive-controller/recipe.yaml create mode 100644 recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat create mode 100644 recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh create mode 100644 recipes/ros-noetic-dynamic-reconfigure/recipe.yaml create mode 100644 recipes/ros-noetic-effort-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-effort-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-effort-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-executive-smach/bld_catkin.bat create mode 100644 recipes/ros-noetic-executive-smach/build_catkin.sh create mode 100644 recipes/ros-noetic-executive-smach/recipe.yaml create mode 100644 recipes/ros-noetic-fake-localization/bld_catkin.bat create mode 100644 recipes/ros-noetic-fake-localization/build_catkin.sh create mode 100644 recipes/ros-noetic-fake-localization/recipe.yaml create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml create mode 100644 recipes/ros-noetic-forward-command-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-forward-command-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-forward-command-controller/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch create mode 100644 recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch create mode 100644 recipes/ros-noetic-gazebo-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros-control/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch create mode 100644 recipes/ros-noetic-gazebo-ros-control/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch create mode 100644 recipes/ros-noetic-gazebo-ros/recipe.yaml create mode 100644 recipes/ros-noetic-geometry-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-geometry2/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry2/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry2/recipe.yaml create mode 100644 recipes/ros-noetic-gmapping/bld_catkin.bat create mode 100644 recipes/ros-noetic-gmapping/build_catkin.sh create mode 100644 recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch create mode 100644 recipes/ros-noetic-gmapping/recipe.yaml create mode 100644 recipes/ros-noetic-gripper-action-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-gripper-action-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-gripper-action-controller/recipe.yaml create mode 100644 recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-hector-trajectory-server/build_catkin.sh create mode 100644 recipes/ros-noetic-hector-trajectory-server/recipe.yaml create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml create mode 100644 recipes/ros-noetic-image-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-common/build_catkin.sh create mode 100644 recipes/ros-noetic-image-common/recipe.yaml create mode 100644 recipes/ros-noetic-image-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-image-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-image-pipeline/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-pipeline/build_catkin.sh create mode 100644 recipes/ros-noetic-image-pipeline/recipe.yaml create mode 100644 recipes/ros-noetic-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-image-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-image-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-image-rotate/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-rotate/build_catkin.sh create mode 100644 recipes/ros-noetic-image-rotate/recipe.yaml create mode 100644 recipes/ros-noetic-image-transport-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-transport-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-image-transport-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-image-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-view/build_catkin.sh create mode 100644 recipes/ros-noetic-image-view/recipe.yaml create mode 100644 recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-complementary-filter/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-complementary-filter/recipe.yaml create mode 100644 recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-filter-madgwick/recipe.yaml create mode 100644 recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-sensor-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-sensor-controller/recipe.yaml create mode 100644 recipes/ros-noetic-imu-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-tools/recipe.yaml create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-interactive-markers/bld_catkin.bat create mode 100644 recipes/ros-noetic-interactive-markers/build_catkin.sh create mode 100644 recipes/ros-noetic-interactive-markers/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-controller/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-trajectory-controller/recipe.yaml create mode 100644 recipes/ros-noetic-laser-assembler/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-assembler/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-assembler/recipe.yaml create mode 100644 recipes/ros-noetic-laser-filters/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-filters/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-filters/recipe.yaml create mode 100644 recipes/ros-noetic-laser-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-laser-pipeline/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-pipeline/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-pipeline/recipe.yaml create mode 100644 recipes/ros-noetic-librviz-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-librviz-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch create mode 100644 recipes/ros-noetic-librviz-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-map-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-map-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-map-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-costmap-core/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-costmap-core/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-utility/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-utility/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-utility/recipe.yaml create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml create mode 100644 recipes/ros-noetic-move-base/bld_catkin.bat create mode 100644 recipes/ros-noetic-move-base/build_catkin.sh create mode 100644 recipes/ros-noetic-move-base/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-commander/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-commander/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-commander/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-core/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-core/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-kinematics/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-kinematics/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-kinematics/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners-chomp/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch create mode 100644 recipes/ros-noetic-moveit-planners-ompl/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-move-group/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-perception/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch create mode 100644 recipes/ros-noetic-moveit-ros-perception/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-planning/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-planning/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-visualization/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-setup-assistant/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-visual-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch create mode 100644 recipes/ros-noetic-moveit-visual-tools/recipe.yaml create mode 100644 recipes/ros-noetic-moveit/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit/recipe.yaml create mode 100644 recipes/ros-noetic-nav-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-nav-core/build_catkin.sh create mode 100644 recipes/ros-noetic-nav-core/recipe.yaml create mode 100644 recipes/ros-noetic-navfn/bld_catkin.bat create mode 100644 recipes/ros-noetic-navfn/build_catkin.sh create mode 100644 recipes/ros-noetic-navfn/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet-core/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet-core/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet-topic-tools/recipe.yaml create mode 100644 recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-object-recognition-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-object-recognition-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-octomap-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap-ros/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch create mode 100644 recipes/ros-noetic-pcl-ros/recipe.yaml create mode 100644 recipes/ros-noetic-perception-pcl/bld_catkin.bat create mode 100644 recipes/ros-noetic-perception-pcl/build_catkin.sh create mode 100644 recipes/ros-noetic-perception-pcl/recipe.yaml create mode 100644 recipes/ros-noetic-perception/bld_catkin.bat create mode 100644 recipes/ros-noetic-perception/build_catkin.sh create mode 100644 recipes/ros-noetic-perception/recipe.yaml create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml create mode 100644 recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-plotjuggler-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-plotjuggler-ros/recipe.yaml create mode 100644 recipes/ros-noetic-polled-camera/bld_catkin.bat create mode 100644 recipes/ros-noetic-polled-camera/build_catkin.sh create mode 100644 recipes/ros-noetic-polled-camera/recipe.yaml create mode 100644 recipes/ros-noetic-position-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-position-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-position-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-realtime-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-realtime-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch create mode 100644 recipes/ros-noetic-realtime-tools/recipe.yaml create mode 100644 recipes/ros-noetic-rgbd-launch/bld_catkin.bat create mode 100644 recipes/ros-noetic-rgbd-launch/build_catkin.sh create mode 100644 recipes/ros-noetic-rgbd-launch/recipe.yaml create mode 100644 recipes/ros-noetic-robot-localization/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot-localization/build_catkin.sh create mode 100644 recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch create mode 100644 recipes/ros-noetic-robot-localization/recipe.yaml create mode 100644 recipes/ros-noetic-robot-state-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot-state-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-robot-state-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-robot/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot/build_catkin.sh create mode 100644 recipes/ros-noetic-robot/recipe.yaml create mode 100644 recipes/ros-noetic-ros-babel-fish/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-babel-fish/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch create mode 100644 recipes/ros-noetic-ros-babel-fish/recipe.yaml create mode 100644 recipes/ros-noetic-ros-base/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-base/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-base/recipe.yaml create mode 100644 recipes/ros-noetic-ros-comm/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-comm/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-comm/recipe.yaml create mode 100644 recipes/ros-noetic-ros-control/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-control/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-control/recipe.yaml create mode 100644 recipes/ros-noetic-ros-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-ros-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-core/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-core/recipe.yaml create mode 100644 recipes/ros-noetic-rosapi/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosapi/build_catkin.sh create mode 100644 recipes/ros-noetic-rosapi/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-library/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-library/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-library/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-server/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-server/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-suite/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-suite/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-suite/recipe.yaml create mode 100644 recipes/ros-noetic-rosnode/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosnode/build_catkin.sh create mode 100644 recipes/ros-noetic-rosnode/recipe.yaml create mode 100644 recipes/ros-noetic-rosservice/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosservice/build_catkin.sh create mode 100644 recipes/ros-noetic-rosservice/recipe.yaml create mode 100644 recipes/ros-noetic-roswtf/bld_catkin.bat create mode 100644 recipes/ros-noetic-roswtf/build_catkin.sh create mode 100644 recipes/ros-noetic-roswtf/recipe.yaml create mode 100644 recipes/ros-noetic-rotate-recovery/bld_catkin.bat create mode 100644 recipes/ros-noetic-rotate-recovery/build_catkin.sh create mode 100644 recipes/ros-noetic-rotate-recovery/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-action/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-action/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-action/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-bag-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-bag/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-bag/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-bag/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-common-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-common-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-console/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-console/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-console/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-dep/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-dep/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-dep/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-ez-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-ez-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-graph/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-graph/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-graph/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-image-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-image-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch create mode 100644 recipes/ros-noetic-rqt-image-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-launch/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-launch/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-launch/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-logger-level/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-logger-level/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-logger-level/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-moveit/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-moveit/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-moveit/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-msg/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-msg/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-msg/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-nav-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-nav-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-nav-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-plot/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-plot/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-plot/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-pose-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-pose-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-pose-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-py-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-py-common/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-py-common/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-reconfigure/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-reconfigure/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-monitor/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-steering/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-steering/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-rviz/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-rviz/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-rviz/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-service-caller/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-service-caller/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-service-caller/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-srv/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-srv/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-srv/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-tf-tree/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-tf-tree/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-topic/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-topic/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-topic/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch create mode 100644 recipes/ros-noetic-rviz-imu-plugin/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-python-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-visual-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-visual-tools/recipe.yaml create mode 100644 recipes/ros-noetic-rviz/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch create mode 100644 recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch create mode 100644 recipes/ros-noetic-rviz/recipe.yaml create mode 100644 recipes/ros-noetic-simulators/bld_catkin.bat create mode 100644 recipes/ros-noetic-simulators/build_catkin.sh create mode 100644 recipes/ros-noetic-simulators/recipe.yaml create mode 100644 recipes/ros-noetic-smach-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-smach-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-smach-ros/recipe.yaml create mode 100644 recipes/ros-noetic-stereo-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-stereo-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-stereo-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-stereo-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-stereo-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-stereo-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-teb-local-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-teb-local-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.osx.patch create mode 100644 recipes/ros-noetic-teb-local-planner/recipe.yaml create mode 100644 recipes/ros-noetic-tf-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-tf-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-tf/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf/build_catkin.sh create mode 100644 recipes/ros-noetic-tf/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-kdl/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-kdl/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-kdl/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-ros/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-tools/recipe.yaml create mode 100644 recipes/ros-noetic-theora-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-theora-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-theora-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-actionlib/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-actionlib/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-actionlib/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-tf/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-tf/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-tf/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-tf2/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-tf2/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-tf2/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-bringup/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-example/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-example/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-example/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-fake/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-fake/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-navigation/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-simulations/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-slam/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-slam/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-velocity-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-velocity-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-velocity-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-velodyne-simulator/bld_catkin.bat create mode 100644 recipes/ros-noetic-velodyne-simulator/build_catkin.sh create mode 100644 recipes/ros-noetic-velodyne-simulator/recipe.yaml create mode 100644 recipes/ros-noetic-vision-opencv/bld_catkin.bat create mode 100644 recipes/ros-noetic-vision-opencv/build_catkin.sh create mode 100644 recipes/ros-noetic-vision-opencv/recipe.yaml create mode 100644 recipes/ros-noetic-visualization-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-visualization-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-visualization-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-viz/bld_catkin.bat create mode 100644 recipes/ros-noetic-viz/build_catkin.sh create mode 100644 recipes/ros-noetic-viz/recipe.yaml create mode 100644 recipes/ros-noetic-warehouse-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-warehouse-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-warehouse-ros/recipe.yaml create mode 100644 vinca.yaml create mode 100644 vinca_f77689b8dc.json diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml new file mode 100644 index 000000000..68b19f35f --- /dev/null +++ b/.github/workflows/osx.yml @@ -0,0 +1,1109 @@ +jobs: + stage_0_job_0: + name: rosnode rosservice map-msgs image-transport joint-state-publisher + runs-on: macos-11 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosnode ros-noetic-rosservice ros-noetic-map-msgs ros-noetic-image-transport + ros-noetic-joint-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosnode ros-noetic-rosservice ros-noetic-map-msgs + ros-noetic-image-transport ros-noetic-joint-state-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_0_job_1: + name: object-recognition-msgs pcl-msgs stereo-msgs image-geometry cv-bridge + runs-on: macos-11 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-object-recognition-msgs ros-noetic-pcl-msgs ros-noetic-stereo-msgs + ros-noetic-image-geometry ros-noetic-cv-bridge + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-object-recognition-msgs ros-noetic-pcl-msgs ros-noetic-stereo-msgs + ros-noetic-image-geometry ros-noetic-cv-bridge + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_0_job_2: + name: gazebo-msgs camera-calibration-parsers rqt-topic hls-lfcd-lds-driver rqt-robot-steering + runs-on: macos-11 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers ros-noetic-rqt-topic + ros-noetic-hls-lfcd-lds-driver ros-noetic-rqt-robot-steering + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers + ros-noetic-rqt-topic ros-noetic-hls-lfcd-lds-driver ros-noetic-rqt-robot-steering + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_1_job_3: + name: actionlib roswtf joint-state-publisher-gui moveit-msgs dynamic-reconfigure + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-actionlib ros-noetic-roswtf ros-noetic-joint-state-publisher-gui + ros-noetic-moveit-msgs ros-noetic-dynamic-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-actionlib ros-noetic-roswtf ros-noetic-joint-state-publisher-gui + ros-noetic-moveit-msgs ros-noetic-dynamic-reconfigure + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_1_job_4: + name: rqt-logger-level pcl-conversions rqt-bag controller-manager-msgs camera-info-manager + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-logger-level ros-noetic-pcl-conversions ros-noetic-rqt-bag + ros-noetic-controller-manager-msgs ros-noetic-camera-info-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-logger-level ros-noetic-pcl-conversions ros-noetic-rqt-bag + ros-noetic-controller-manager-msgs ros-noetic-camera-info-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_1_job_5: + name: rqt-image-view polled-camera common-msgs rqt-graph rosbridge-library + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-image-view ros-noetic-polled-camera ros-noetic-common-msgs + ros-noetic-rqt-graph ros-noetic-rosbridge-library + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-image-view ros-noetic-polled-camera ros-noetic-common-msgs + ros-noetic-rqt-graph ros-noetic-rosbridge-library + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_1_job_6: + name: camera-calibration vision-opencv + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-camera-calibration ros-noetic-vision-opencv + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-camera-calibration ros-noetic-vision-opencv + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_7: + name: tf2-ros rqt-py-common nodelet-topic-tools realtime-tools image-view + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-ros ros-noetic-rqt-py-common ros-noetic-nodelet-topic-tools + ros-noetic-realtime-tools ros-noetic-image-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-ros ros-noetic-rqt-py-common ros-noetic-nodelet-topic-tools + ros-noetic-realtime-tools ros-noetic-image-view + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_8: + name: controller-manager image-publisher actionlib-tutorials compressed-image-transport + compressed-depth-image-transport + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-controller-manager ros-noetic-image-publisher ros-noetic-actionlib-tutorials + ros-noetic-compressed-image-transport ros-noetic-compressed-depth-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-controller-manager ros-noetic-image-publisher + ros-noetic-actionlib-tutorials ros-noetic-compressed-image-transport ros-noetic-compressed-depth-image-transport + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_9: + name: ros-comm theora-image-transport smach-ros rqt-dep rosapi + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-comm ros-noetic-theora-image-transport ros-noetic-smach-ros + ros-noetic-rqt-dep ros-noetic-rosapi + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-comm ros-noetic-theora-image-transport ros-noetic-smach-ros + ros-noetic-rqt-dep ros-noetic-rosapi + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_10: + name: turtle-actionlib image-common rqt-controller-manager + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtle-actionlib ros-noetic-image-common ros-noetic-rqt-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtle-actionlib ros-noetic-image-common ros-noetic-rqt-controller-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_11: + name: tf2-geometry-msgs tf tf2-kdl tf2-sensor-msgs rqt-console + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-geometry-msgs ros-noetic-tf ros-noetic-tf2-kdl ros-noetic-tf2-sensor-msgs + ros-noetic-rqt-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-geometry-msgs ros-noetic-tf ros-noetic-tf2-kdl + ros-noetic-tf2-sensor-msgs ros-noetic-rqt-console + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_12: + name: depth-image-proc image-proc control-toolbox forward-command-controller rqt-robot-monitor + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-depth-image-proc ros-noetic-image-proc ros-noetic-control-toolbox + ros-noetic-forward-command-controller ros-noetic-rqt-robot-monitor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-depth-image-proc ros-noetic-image-proc ros-noetic-control-toolbox + ros-noetic-forward-command-controller ros-noetic-rqt-robot-monitor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_13: + name: rqt-plot joint-state-controller imu-sensor-controller force-torque-sensor-controller + ros-core + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-plot ros-noetic-joint-state-controller ros-noetic-imu-sensor-controller + ros-noetic-force-torque-sensor-controller ros-noetic-ros-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-plot ros-noetic-joint-state-controller ros-noetic-imu-sensor-controller + ros-noetic-force-torque-sensor-controller ros-noetic-ros-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_14: + name: nodelet-core rqt-tf-tree rqt-moveit rqt-service-caller rqt-publisher + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet-core ros-noetic-rqt-tf-tree ros-noetic-rqt-moveit + ros-noetic-rqt-service-caller ros-noetic-rqt-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet-core ros-noetic-rqt-tf-tree ros-noetic-rqt-moveit + ros-noetic-rqt-service-caller ros-noetic-rqt-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_15: + name: executive-smach rosbridge-server image-transport-plugins common-tutorials + ros-control + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-image-transport-plugins + ros-noetic-common-tutorials ros-noetic-ros-control + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-image-transport-plugins + ros-noetic-common-tutorials ros-noetic-ros-control + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_16: + name: tf2-tools ros-babel-fish plotjuggler-ros + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + - stage_2_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-tools ros-noetic-ros-babel-fish ros-noetic-plotjuggler-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-tools ros-noetic-ros-babel-fish ros-noetic-plotjuggler-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_17: + name: laser-geometry interactive-markers robot-state-publisher warehouse-ros rqt-reconfigure + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-geometry ros-noetic-interactive-markers ros-noetic-robot-state-publisher + ros-noetic-warehouse-ros ros-noetic-rqt-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-geometry ros-noetic-interactive-markers + ros-noetic-robot-state-publisher ros-noetic-warehouse-ros ros-noetic-rqt-reconfigure + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_18: + name: gazebo-ros pcl-ros tf-conversions rqt-nav-view rgbd-launch + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros ros-noetic-pcl-ros ros-noetic-tf-conversions + ros-noetic-rqt-nav-view ros-noetic-rgbd-launch + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros ros-noetic-pcl-ros ros-noetic-tf-conversions + ros-noetic-rqt-nav-view ros-noetic-rgbd-launch + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_19: + name: stereo-image-proc amcl velocity-controllers position-controllers joint-trajectory-controller + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-stereo-image-proc ros-noetic-amcl ros-noetic-velocity-controllers + ros-noetic-position-controllers ros-noetic-joint-trajectory-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-stereo-image-proc ros-noetic-amcl ros-noetic-velocity-controllers + ros-noetic-position-controllers ros-noetic-joint-trajectory-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_20: + name: diff-drive-controller octomap-ros rqt-msg gmapping gripper-action-controller + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diff-drive-controller ros-noetic-octomap-ros ros-noetic-rqt-msg + ros-noetic-gmapping ros-noetic-gripper-action-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diff-drive-controller ros-noetic-octomap-ros ros-noetic-rqt-msg + ros-noetic-gmapping ros-noetic-gripper-action-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_21: + name: diagnostic-common-diagnostics rqt-pose-view rqt-launch rqt-bag-plugins mbf-utility + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-common-diagnostics ros-noetic-rqt-pose-view + ros-noetic-rqt-launch ros-noetic-rqt-bag-plugins ros-noetic-mbf-utility + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-common-diagnostics ros-noetic-rqt-pose-view + ros-noetic-rqt-launch ros-noetic-rqt-bag-plugins ros-noetic-mbf-utility + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_22: + name: robot-localization ros-base image-rotate turtle-tf2 turtle-tf + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-localization ros-noetic-ros-base ros-noetic-image-rotate + ros-noetic-turtle-tf2 ros-noetic-turtle-tf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-localization ros-noetic-ros-base ros-noetic-image-rotate + ros-noetic-turtle-tf2 ros-noetic-turtle-tf + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_23: + name: imu-filter-madgwick imu-complementary-filter fake-localization hector-trajectory-server + rosbridge-suite + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-filter-madgwick ros-noetic-imu-complementary-filter + ros-noetic-fake-localization ros-noetic-hector-trajectory-server ros-noetic-rosbridge-suite + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-filter-madgwick ros-noetic-imu-complementary-filter + ros-noetic-fake-localization ros-noetic-hector-trajectory-server ros-noetic-rosbridge-suite + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_24: + name: rqt-ez-publisher microstrain-inertial-driver geometry2 + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_3_job_11 + - stage_3_job_12 + - stage_3_job_13 + - stage_3_job_14 + - stage_3_job_15 + - stage_3_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-ez-publisher ros-noetic-microstrain-inertial-driver + ros-noetic-geometry2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-ez-publisher ros-noetic-microstrain-inertial-driver + ros-noetic-geometry2 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_25: + name: rviz moveit-resources-fanuc-moveit-config costmap-2d laser-filters rqt-robot-dashboard + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_4_job_17 + - stage_4_job_18 + - stage_4_job_19 + - stage_4_job_20 + - stage_4_job_21 + - stage_4_job_22 + - stage_4_job_23 + - stage_4_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz ros-noetic-moveit-resources-fanuc-moveit-config + ros-noetic-costmap-2d ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz ros-noetic-moveit-resources-fanuc-moveit-config + ros-noetic-costmap-2d ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_26: + name: gazebo-ros-control gazebo-plugins effort-controllers ackermann-steering-controller + laser-assembler + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_4_job_17 + - stage_4_job_18 + - stage_4_job_19 + - stage_4_job_20 + - stage_4_job_21 + - stage_4_job_22 + - stage_4_job_23 + - stage_4_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-control ros-noetic-gazebo-plugins ros-noetic-effort-controllers + ros-noetic-ackermann-steering-controller ros-noetic-laser-assembler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-control ros-noetic-gazebo-plugins ros-noetic-effort-controllers + ros-noetic-ackermann-steering-controller ros-noetic-laser-assembler + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_27: + name: rqt-srv rqt-action turtlebot3-bringup geometry diagnostics + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_4_job_17 + - stage_4_job_18 + - stage_4_job_19 + - stage_4_job_20 + - stage_4_job_21 + - stage_4_job_22 + - stage_4_job_23 + - stage_4_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-srv ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + ros-noetic-geometry ros-noetic-diagnostics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-srv ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + ros-noetic-geometry ros-noetic-diagnostics + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_28: + name: interactive-marker-tutorials turtlebot3-gazebo perception-pcl image-pipeline + geometry-tutorials + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_4_job_17 + - stage_4_job_18 + - stage_4_job_19 + - stage_4_job_20 + - stage_4_job_21 + - stage_4_job_22 + - stage_4_job_23 + - stage_4_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + ros-noetic-perception-pcl ros-noetic-image-pipeline ros-noetic-geometry-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + ros-noetic-perception-pcl ros-noetic-image-pipeline ros-noetic-geometry-tutorials + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_29: + name: velodyne-gazebo-plugins turtlebot3-fake + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_4_job_17 + - stage_4_job_18 + - stage_4_job_19 + - stage_4_job_20 + - stage_4_job_21 + - stage_4_job_22 + - stage_4_job_23 + - stage_4_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-gazebo-plugins ros-noetic-turtlebot3-fake + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-gazebo-plugins ros-noetic-turtlebot3-fake + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_30: + name: moveit-resources-panda-moveit-config nav-core rqt-rviz ros-controllers rqt-common-plugins + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_5_job_25 + - stage_5_job_26 + - stage_5_job_27 + - stage_5_job_28 + - stage_5_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-rqt-rviz ros-noetic-ros-controllers ros-noetic-rqt-common-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-rqt-rviz ros-noetic-ros-controllers ros-noetic-rqt-common-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_31: + name: rviz-python-tutorial rviz-plugin-tutorials librviz-tutorial costmap-converter + urdf-tutorial + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_5_job_25 + - stage_5_job_26 + - stage_5_job_27 + - stage_5_job_28 + - stage_5_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-python-tutorial ros-noetic-rviz-plugin-tutorials + ros-noetic-librviz-tutorial ros-noetic-costmap-converter ros-noetic-urdf-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-python-tutorial ros-noetic-rviz-plugin-tutorials + ros-noetic-librviz-tutorial ros-noetic-costmap-converter ros-noetic-urdf-tutorial + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_32: + name: robot gazebo-ros-pkgs laser-pipeline rviz-imu-plugin turtlebot3-slam + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_5_job_25 + - stage_5_job_26 + - stage_5_job_27 + - stage_5_job_28 + - stage_5_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot ros-noetic-gazebo-ros-pkgs ros-noetic-laser-pipeline + ros-noetic-rviz-imu-plugin ros-noetic-turtlebot3-slam + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot ros-noetic-gazebo-ros-pkgs ros-noetic-laser-pipeline + ros-noetic-rviz-imu-plugin ros-noetic-turtlebot3-slam + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_33: + name: turtlebot3-example rviz-visual-tools velodyne-simulator turtlebot3-simulations + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_5_job_25 + - stage_5_job_26 + - stage_5_job_27 + - stage_5_job_28 + - stage_5_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-example ros-noetic-rviz-visual-tools ros-noetic-velodyne-simulator + ros-noetic-turtlebot3-simulations + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-example ros-noetic-rviz-visual-tools + ros-noetic-velodyne-simulator ros-noetic-turtlebot3-simulations + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_34: + name: moveit-core base-local-planner navfn clear-costmap-recovery rqt-robot-plugins + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_6_job_30 + - stage_6_job_31 + - stage_6_job_32 + - stage_6_job_33 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-core ros-noetic-base-local-planner ros-noetic-navfn + ros-noetic-clear-costmap-recovery ros-noetic-rqt-robot-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-core ros-noetic-base-local-planner ros-noetic-navfn + ros-noetic-clear-costmap-recovery ros-noetic-rqt-robot-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_35: + name: mbf-costmap-core visualization-tutorials urdf-sim-tutorial perception imu-tools + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_6_job_30 + - stage_6_job_31 + - stage_6_job_32 + - stage_6_job_33 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mbf-costmap-core ros-noetic-visualization-tutorials ros-noetic-urdf-sim-tutorial + ros-noetic-perception ros-noetic-imu-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mbf-costmap-core ros-noetic-visualization-tutorials + ros-noetic-urdf-sim-tutorial ros-noetic-perception ros-noetic-imu-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_8_job_36: + name: moveit-ros-occupancy-map-monitor rotate-recovery moveit-resources-prbt-ikfast-manipulator-plugin + moveit-simple-controller-manager chomp-motion-planner + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_7_job_34 + - stage_7_job_35 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-occupancy-map-monitor ros-noetic-rotate-recovery + ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin ros-noetic-moveit-simple-controller-manager + ros-noetic-chomp-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-occupancy-map-monitor ros-noetic-rotate-recovery + ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin ros-noetic-moveit-simple-controller-manager + ros-noetic-chomp-motion-planner + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_8_job_37: + name: viz teb-local-planner simulators + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_7_job_34 + - stage_7_job_35 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-viz ros-noetic-teb-local-planner ros-noetic-simulators + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-viz ros-noetic-teb-local-planner ros-noetic-simulators + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_9_job_38: + name: moveit-ros-planning move-base moveit-resources-prbt-moveit-config moveit-ros-control-interface + desktop + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_8_job_36 + - stage_8_job_37 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-planning ros-noetic-move-base ros-noetic-moveit-resources-prbt-moveit-config + ros-noetic-moveit-ros-control-interface ros-noetic-desktop + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-planning ros-noetic-move-base ros-noetic-moveit-resources-prbt-moveit-config + ros-noetic-moveit-ros-control-interface ros-noetic-desktop + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_10_job_39: + name: moveit-kinematics moveit-ros-warehouse moveit-ros-robot-interaction moveit-ros-perception + moveit-fake-controller-manager + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_9_job_38 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-kinematics ros-noetic-moveit-ros-warehouse ros-noetic-moveit-ros-robot-interaction + ros-noetic-moveit-ros-perception ros-noetic-moveit-fake-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-kinematics ros-noetic-moveit-ros-warehouse + ros-noetic-moveit-ros-robot-interaction ros-noetic-moveit-ros-perception + ros-noetic-moveit-fake-controller-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_10_job_40: + name: moveit-resources-prbt-pg70-support moveit-planners-ompl turtlebot3-navigation + desktop-full moveit-visual-tools + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_9_job_38 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-pg70-support ros-noetic-moveit-planners-ompl + ros-noetic-turtlebot3-navigation ros-noetic-desktop-full ros-noetic-moveit-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-pg70-support ros-noetic-moveit-planners-ompl + ros-noetic-turtlebot3-navigation ros-noetic-desktop-full ros-noetic-moveit-visual-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_11_job_41: + name: moveit-ros-move-group moveit-plugins moveit-ros-benchmarks turtlebot3 + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_10_job_39 + - stage_10_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-move-group ros-noetic-moveit-plugins ros-noetic-moveit-ros-benchmarks + ros-noetic-turtlebot3 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-move-group ros-noetic-moveit-plugins + ros-noetic-moveit-ros-benchmarks ros-noetic-turtlebot3 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_12_job_42: + name: moveit-ros-manipulation moveit-ros-planning-interface + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_11_job_41 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-manipulation ros-noetic-moveit-ros-planning-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-manipulation ros-noetic-moveit-ros-planning-interface + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_13_job_43: + name: moveit-commander moveit-ros-visualization moveit-planners-chomp + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_12_job_42 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_14_job_44: + name: pilz-industrial-motion-planner-testutils moveit-setup-assistant moveit-ros + pilz-industrial-motion-planner + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_13_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pilz-industrial-motion-planner-testutils ros-noetic-moveit-setup-assistant + ros-noetic-moveit-ros ros-noetic-pilz-industrial-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pilz-industrial-motion-planner-testutils ros-noetic-moveit-setup-assistant + ros-noetic-moveit-ros ros-noetic-pilz-industrial-motion-planner + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_15_job_45: + name: moveit-planners moveit + runs-on: macos-11 + strategy: + fail-fast: false + needs: + - stage_14_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-planners ros-noetic-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-planners ros-noetic-moveit + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh +name: build_osx +on: + push: + branches: + - buildbranch_osx diff --git a/activate.bat b/activate.bat new file mode 100644 index 000000000..48ff1d713 --- /dev/null +++ b/activate.bat @@ -0,0 +1,15 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@REM Don't do anything when we are in conda build. +@if defined SYS_PREFIX exit /b 0 + +@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins" + +@call "%CONDA_PREFIX%\Library\local_setup.bat" +@set PYTHONHOME= +@set "ROS_OS_OVERRIDE=conda:win64" +@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros" +@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library" +@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe" diff --git a/activate.ps1 b/activate.ps1 new file mode 100644 index 000000000..137e67aef --- /dev/null +++ b/activate.ps1 @@ -0,0 +1,16 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +# Don't do anything when we are in conda build. +if ($null -ne ${env:SYS_PREFIX}) { Exit 0 } + +$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins" + +& "${env:CONDA_PREFIX}\Library\local_setup.ps1" + +$Env:PYTHONHOME='' +$Env:ROS_OS_OVERRIDE='conda:win64' +$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros" +$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library" +$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe" diff --git a/activate.sh b/activate.sh new file mode 100644 index 000000000..aece97080 --- /dev/null +++ b/activate.sh @@ -0,0 +1,26 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +# if [ -z "${CONDA_PREFIX}" ]; then +# exit 0; +# fi + +# Not sure if this is necessary on UNIX? +# export QT_PLUGIN_PATH=$CONDA_PREFIX\plugins + +if [ "$CONDA_BUILD" = "1" -a "$target_platform" != "$build_platform" ]; then + # ignore sourcing + echo "Not activating ROS when cross-compiling"; +else + source $CONDA_PREFIX/setup.sh +fi + +case "$OSTYPE" in + darwin*) export ROS_OS_OVERRIDE="conda:osx"; export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp";; + linux*) export ROS_OS_OVERRIDE="conda:linux";; +esac + +export ROS_ETC_DIR=$CONDA_PREFIX/etc/ros +export AMENT_PREFIX_PATH=$CONDA_PREFIX + +# Looks unnecessary for UNIX +# unset PYTHONHOME= diff --git a/bld_ament_cmake.bat b/bld_ament_cmake.bat new file mode 100644 index 000000000..7aa6fc90a --- /dev/null +++ b/bld_ament_cmake.bat @@ -0,0 +1,38 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" + +:: try to fix long paths issues by using default generator +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" +set "SP_DIR_FORWARDSLASHES=%SP_DIR:\=/%" + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + -DPYTHON_INSTALL_DIR=%SP_DIR_FORWARDSLASHES% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 diff --git a/bld_ament_python.bat b/bld_ament_python.bat new file mode 100644 index 000000000..5aa4f978a --- /dev/null +++ b/bld_ament_python.bat @@ -0,0 +1,21 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +pushd %SRC_DIR%\%PKG_NAME%\src\work + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% -m pip install . --no-deps -vvv +) else ( + set "INSTALL_SCRIPTS_ARG=--install-scripts=%LIBRARY_PREFIX%\bin" + %PYTHON% setup.py install ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + %INSTALL_SCRIPTS_ARG% +) + +if errorlevel 1 exit 1 diff --git a/bld_catkin.bat b/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/bld_catkin_merge.bat b/bld_catkin_merge.bat new file mode 100644 index 000000000..f2c6cf722 --- /dev/null +++ b/bld_catkin_merge.bat @@ -0,0 +1,34 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set CATKIN_MAKE_ISOLATED=src\ros-noetic-catkin\bin\catkin_make_isolated +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH:\=/% + +%PYTHON% %CATKIN_MAKE_ISOLATED% ^ + --install-space %LIBRARY_PREFIX% ^ + --use-ninja ^ + --install ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DCATKIN_SKIP_TESTING=ON +if errorlevel 1 exit 1 + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat +) diff --git a/bld_colcon_merge.bat b/bld_colcon_merge.bat new file mode 100644 index 000000000..9d012eff4 --- /dev/null +++ b/bld_colcon_merge.bat @@ -0,0 +1,28 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +set "SP_DIR_FORWARDSLASHES=%SP_DIR:\=/%" + +colcon build ^ + --event-handlers console_cohesion+ ^ + --merge-install ^ + --install-base %LIBRARY_PREFIX% ^ + --cmake-args ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_TESTING=OFF ^ + -DPYTHON_INSTALL_DIR=%SP_DIR_FORWARDSLASHES% ^ + -DPYTHON_EXECUTABLE=%PYTHON% +if errorlevel 1 exit 1 + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat +) diff --git a/build_ament_cmake.sh b/build_ament_cmake.sh new file mode 100644 index 000000000..01c63b554 --- /dev/null +++ b/build_ament_cmake.sh @@ -0,0 +1,68 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" +echo "Using site-package dir ${SP_DIR}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/build_ament_python.sh b/build_ament_python.sh new file mode 100644 index 000000000..395f7d640 --- /dev/null +++ b/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +result=$? +grep -q "install[-_]scripts" setup.cfg || true +if [ $result -eq 0 ]; then + $PYTHON -m pip install . --no-deps -vvv +else + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-noetic-} + # Substitute "-" with "_" + PKG_NAME_SHORT=${PKG_NAME_SHORT//-/_} + INSTALL_SCRIPTS_ARG="--install-scripts=$PREFIX/lib/$PKG_NAME_SHORT" + echo "WARNING: setup.cfg not set, will set INSTALL_SCRIPTS_ARG to: $INSTALL_SCRIPTS_ARG" + $PYTHON setup.py install --prefix="$PREFIX" --install-lib="$SP_DIR" $INSTALL_SCRIPTS_ARG +fi diff --git a/build_catkin.sh b/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/buildorder.txt b/buildorder.txt new file mode 100644 index 000000000..73e35c315 --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,205 @@ +ros-noetic-rosnode +ros-noetic-rosservice +ros-noetic-map-msgs +ros-noetic-image-transport +ros-noetic-joint-state-publisher +ros-noetic-object-recognition-msgs +ros-noetic-pcl-msgs +ros-noetic-stereo-msgs +ros-noetic-image-geometry +ros-noetic-cv-bridge +ros-noetic-gazebo-msgs +ros-noetic-camera-calibration-parsers +ros-noetic-rqt-topic +ros-noetic-hls-lfcd-lds-driver +ros-noetic-rqt-robot-steering +ros-noetic-actionlib +ros-noetic-roswtf +ros-noetic-joint-state-publisher-gui +ros-noetic-moveit-msgs +ros-noetic-dynamic-reconfigure +ros-noetic-rqt-logger-level +ros-noetic-pcl-conversions +ros-noetic-rqt-bag +ros-noetic-controller-manager-msgs +ros-noetic-camera-info-manager +ros-noetic-rqt-image-view +ros-noetic-polled-camera +ros-noetic-common-msgs +ros-noetic-rqt-graph +ros-noetic-rosbridge-library +ros-noetic-camera-calibration +ros-noetic-vision-opencv +ros-noetic-tf2-ros +ros-noetic-rqt-py-common +ros-noetic-nodelet-topic-tools +ros-noetic-realtime-tools +ros-noetic-image-view +ros-noetic-controller-manager +ros-noetic-image-publisher +ros-noetic-actionlib-tutorials +ros-noetic-compressed-image-transport +ros-noetic-compressed-depth-image-transport +ros-noetic-ros-comm +ros-noetic-theora-image-transport +ros-noetic-smach-ros +ros-noetic-rqt-dep +ros-noetic-rosapi +ros-noetic-turtle-actionlib +ros-noetic-image-common +ros-noetic-rqt-controller-manager +ros-noetic-tf2-geometry-msgs +ros-noetic-tf +ros-noetic-tf2-kdl +ros-noetic-tf2-sensor-msgs +ros-noetic-rqt-console +ros-noetic-depth-image-proc +ros-noetic-image-proc +ros-noetic-control-toolbox +ros-noetic-forward-command-controller +ros-noetic-rqt-robot-monitor +ros-noetic-rqt-plot +ros-noetic-joint-state-controller +ros-noetic-imu-sensor-controller +ros-noetic-force-torque-sensor-controller +ros-noetic-ros-core +ros-noetic-nodelet-core +ros-noetic-rqt-tf-tree +ros-noetic-rqt-moveit +ros-noetic-rqt-service-caller +ros-noetic-rqt-publisher +ros-noetic-executive-smach +ros-noetic-rosbridge-server +ros-noetic-image-transport-plugins +ros-noetic-common-tutorials +ros-noetic-ros-control +ros-noetic-tf2-tools +ros-noetic-ros-babel-fish +ros-noetic-plotjuggler-ros +ros-noetic-laser-geometry +ros-noetic-interactive-markers +ros-noetic-robot-state-publisher +ros-noetic-warehouse-ros +ros-noetic-rqt-reconfigure +ros-noetic-gazebo-ros +ros-noetic-pcl-ros +ros-noetic-tf-conversions +ros-noetic-rqt-nav-view +ros-noetic-rgbd-launch +ros-noetic-stereo-image-proc +ros-noetic-amcl +ros-noetic-velocity-controllers +ros-noetic-position-controllers +ros-noetic-joint-trajectory-controller +ros-noetic-diff-drive-controller +ros-noetic-octomap-ros +ros-noetic-rqt-msg +ros-noetic-gmapping +ros-noetic-gripper-action-controller +ros-noetic-diagnostic-common-diagnostics +ros-noetic-rqt-pose-view +ros-noetic-rqt-launch +ros-noetic-rqt-bag-plugins +ros-noetic-mbf-utility +ros-noetic-robot-localization +ros-noetic-ros-base +ros-noetic-image-rotate +ros-noetic-turtle-tf2 +ros-noetic-turtle-tf +ros-noetic-imu-filter-madgwick +ros-noetic-imu-complementary-filter +ros-noetic-fake-localization +ros-noetic-hector-trajectory-server +ros-noetic-rosbridge-suite +ros-noetic-rqt-ez-publisher +ros-noetic-microstrain-inertial-driver +ros-noetic-geometry2 +ros-noetic-rviz +ros-noetic-moveit-resources-fanuc-moveit-config +ros-noetic-costmap-2d +ros-noetic-laser-filters +ros-noetic-rqt-robot-dashboard +ros-noetic-gazebo-ros-control +ros-noetic-gazebo-plugins +ros-noetic-effort-controllers +ros-noetic-ackermann-steering-controller +ros-noetic-laser-assembler +ros-noetic-rqt-srv +ros-noetic-rqt-action +ros-noetic-turtlebot3-bringup +ros-noetic-geometry +ros-noetic-diagnostics +ros-noetic-interactive-marker-tutorials +ros-noetic-turtlebot3-gazebo +ros-noetic-perception-pcl +ros-noetic-image-pipeline +ros-noetic-geometry-tutorials +ros-noetic-velodyne-gazebo-plugins +ros-noetic-turtlebot3-fake +ros-noetic-moveit-resources-panda-moveit-config +ros-noetic-nav-core +ros-noetic-rqt-rviz +ros-noetic-ros-controllers +ros-noetic-rqt-common-plugins +ros-noetic-rviz-python-tutorial +ros-noetic-rviz-plugin-tutorials +ros-noetic-librviz-tutorial +ros-noetic-costmap-converter +ros-noetic-urdf-tutorial +ros-noetic-robot +ros-noetic-gazebo-ros-pkgs +ros-noetic-laser-pipeline +ros-noetic-rviz-imu-plugin +ros-noetic-turtlebot3-slam +ros-noetic-turtlebot3-example +ros-noetic-rviz-visual-tools +ros-noetic-velodyne-simulator +ros-noetic-turtlebot3-simulations +ros-noetic-moveit-core +ros-noetic-base-local-planner +ros-noetic-navfn +ros-noetic-clear-costmap-recovery +ros-noetic-rqt-robot-plugins +ros-noetic-mbf-costmap-core +ros-noetic-visualization-tutorials +ros-noetic-urdf-sim-tutorial +ros-noetic-perception +ros-noetic-imu-tools +ros-noetic-moveit-ros-occupancy-map-monitor +ros-noetic-rotate-recovery +ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin +ros-noetic-moveit-simple-controller-manager +ros-noetic-chomp-motion-planner +ros-noetic-viz +ros-noetic-teb-local-planner +ros-noetic-simulators +ros-noetic-moveit-ros-planning +ros-noetic-move-base +ros-noetic-moveit-resources-prbt-moveit-config +ros-noetic-moveit-ros-control-interface +ros-noetic-desktop +ros-noetic-moveit-kinematics +ros-noetic-moveit-ros-warehouse +ros-noetic-moveit-ros-robot-interaction +ros-noetic-moveit-ros-perception +ros-noetic-moveit-fake-controller-manager +ros-noetic-moveit-resources-prbt-pg70-support +ros-noetic-moveit-planners-ompl +ros-noetic-turtlebot3-navigation +ros-noetic-desktop-full +ros-noetic-moveit-visual-tools +ros-noetic-moveit-ros-move-group +ros-noetic-moveit-plugins +ros-noetic-moveit-ros-benchmarks +ros-noetic-turtlebot3 +ros-noetic-moveit-ros-manipulation +ros-noetic-moveit-ros-planning-interface +ros-noetic-moveit-commander +ros-noetic-moveit-ros-visualization +ros-noetic-moveit-planners-chomp +ros-noetic-pilz-industrial-motion-planner-testutils +ros-noetic-moveit-setup-assistant +ros-noetic-moveit-ros +ros-noetic-pilz-industrial-motion-planner +ros-noetic-moveit-planners +ros-noetic-moveit \ No newline at end of file diff --git a/deactivate.bat b/deactivate.bat new file mode 100644 index 000000000..6de79ccaf --- /dev/null +++ b/deactivate.bat @@ -0,0 +1,18 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@set ROS_OS_OVERRIDE= +@set ROS_DISTRO= +@set ROS_ETC_DIR= +@set ROS_PACKAGE_PATH= +@set ROS_PYTHON_VERSION= +@set ROS_VERSION= +@set PYTHONHOME= +@set PYTHONPATH= +@set CMAKE_PREFIX_PATH= +@set AMENT_PREFIX_PATH= +@set COLCON_PREFIX_PATH= +@set QT_PLUGIN_PATH= +@set ROS_LOCALHOST_ONLY= +@set ament_python_executable= diff --git a/deactivate.ps1 b/deactivate.ps1 new file mode 100644 index 000000000..9db51e1c2 --- /dev/null +++ b/deactivate.ps1 @@ -0,0 +1,18 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +$Env:ROS_OS_OVERRIDE='' +$Env:ROS_DISTRO='' +$Env:ROS_ETC_DIR='' +$Env:ROS_PACKAGE_PATH='' +$Env:ROS_PYTHON_VERSION='' +$Env:ROS_VERSION='' +$Env:PYTHONHOME='' +$Env:PYTHONPATH='' +$Env:CMAKE_PREFIX_PATH='' +$Env:AMENT_PREFIX_PATH='' +$Env:COLCON_PREFIX_PATH='' +$Env:QT_PLUGIN_PATH='' +$Env:ROS_LOCALHOST_ONLY='' +$Env:ament_python_executable='' diff --git a/deactivate.sh b/deactivate.sh new file mode 100644 index 000000000..87d4d8359 --- /dev/null +++ b/deactivate.sh @@ -0,0 +1,21 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if [ -z "${CONDA_PREFIX}" ]; then + exit 0 +fi + +unset ROS_DISTRO +unset ROS_ETC_DIR +unset ROS_PACKAGE_PATH +unset ROS_PYTHON_VERSION +unset CMAKE_PREFIX_PATH +unset AMENT_PREFIX_PATH +unset COLCON_PREFIX_PATH +unset ROS_VERSION +unset ROS_OS_OVERRIDE +# unset PYTHONPATH +# unset PYTHONHOME +# unset QT_PLUGIN_PATH +unset ROS_LOCALHOST_ONLY +unset ament_python_executable +unset RMW_IMPLEMENTATION diff --git a/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat b/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh b/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml b/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml new file mode 100644 index 000000000..7036fac40 --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-ackermann-steering-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/ackermann_steering_controller/0.21.2-1 + folder: ros-noetic-ackermann-steering-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-controller-manager-msgs + - ros-noetic-diff-drive-controller + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-xacro + - urdfdom + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-diff-drive-controller + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-tf + - urdfdom + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat b/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh b/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-actionlib-tutorials/recipe.yaml b/recipes/ros-noetic-actionlib-tutorials/recipe.yaml new file mode 100644 index 000000000..d64813ac6 --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-actionlib-tutorials + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/actionlib_tutorials/0.2.0-1 + folder: ros-noetic-actionlib-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-message-runtime + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-actionlib/bld_catkin.bat b/recipes/ros-noetic-actionlib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-actionlib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-actionlib/build_catkin.sh b/recipes/ros-noetic-actionlib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-actionlib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch b/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch new file mode 100644 index 000000000..903753888 --- /dev/null +++ b/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch @@ -0,0 +1,264 @@ +diff --git a/actionlib/include/actionlib/client/action_client.h b/actionlib/include/actionlib/client/action_client.h +index 85b32dc..21d0102 100644 +--- a/actionlib/include/actionlib/client/action_client.h ++++ b/actionlib/include/actionlib/client/action_client.h +@@ -236,17 +236,17 @@ private: + + // Start publishers and subscribers + goal_pub_ = queue_advertise("goal", static_cast(pub_queue_size), +- boost::bind(&ConnectionMonitor::goalConnectCallback, connection_monitor_, _1), +- boost::bind(&ConnectionMonitor::goalDisconnectCallback, connection_monitor_, _1), ++ boost::bind(&ConnectionMonitor::goalConnectCallback, connection_monitor_, boost::placeholders::_1), ++ boost::bind(&ConnectionMonitor::goalDisconnectCallback, connection_monitor_, boost::placeholders::_1), + queue); + cancel_pub_ = + queue_advertise("cancel", static_cast(pub_queue_size), +- boost::bind(&ConnectionMonitor::cancelConnectCallback, connection_monitor_, _1), +- boost::bind(&ConnectionMonitor::cancelDisconnectCallback, connection_monitor_, _1), ++ boost::bind(&ConnectionMonitor::cancelConnectCallback, connection_monitor_, boost::placeholders::_1), ++ boost::bind(&ConnectionMonitor::cancelDisconnectCallback, connection_monitor_, boost::placeholders::_1), + queue); + +- manager_.registerSendGoalFunc(boost::bind(&ActionClientT::sendGoalFunc, this, _1)); +- manager_.registerCancelFunc(boost::bind(&ActionClientT::sendCancelFunc, this, _1)); ++ manager_.registerSendGoalFunc(boost::bind(&ActionClientT::sendGoalFunc, this, boost::placeholders::_1)); ++ manager_.registerCancelFunc(boost::bind(&ActionClientT::sendCancelFunc, this, boost::placeholders::_1)); + } + + template +@@ -275,7 +275,7 @@ private: + ops.datatype = ros::message_traits::datatype(); + ops.helper = ros::SubscriptionCallbackHelperPtr( + new ros::SubscriptionCallbackHelperT &>( +- boost::bind(fp, obj, _1) ++ boost::bind(fp, obj, boost::placeholders::_1) + ) + ); + return n_.subscribe(ops); +diff --git a/actionlib/include/actionlib/client/goal_manager_imp.h b/actionlib/include/actionlib/client/goal_manager_imp.h +index 28f4979..4e3281b 100644 +--- a/actionlib/include/actionlib/client/goal_manager_imp.h ++++ b/actionlib/include/actionlib/client/goal_manager_imp.h +@@ -74,7 +74,7 @@ ClientGoalHandle GoalManager::initGoal(const Goal & goal + + boost::recursive_mutex::scoped_lock lock(list_mutex_); + typename ManagedListT::Handle list_handle = +- list_.add(comm_state_machine, boost::bind(&GoalManagerT::listElemDeleter, this, _1), guard_); ++ list_.add(comm_state_machine, boost::bind(&GoalManagerT::listElemDeleter, this, boost::placeholders::_1), guard_); + + if (send_goal_func_) { + send_goal_func_(action_goal); +diff --git a/actionlib/include/actionlib/client/simple_action_client.h b/actionlib/include/actionlib/client/simple_action_client.h +index 436516f..02df1ae 100644 +--- a/actionlib/include/actionlib/client/simple_action_client.h ++++ b/actionlib/include/actionlib/client/simple_action_client.h +@@ -330,8 +330,8 @@ void SimpleActionClient::sendGoal(const Goal & goal, + cur_simple_state_ = SimpleGoalState::PENDING; + + // Send the goal to the ActionServer +- gh_ = ac_->sendGoal(goal, boost::bind(&SimpleActionClientT::handleTransition, this, _1), +- boost::bind(&SimpleActionClientT::handleFeedback, this, _1, _2)); ++ gh_ = ac_->sendGoal(goal, boost::bind(&SimpleActionClientT::handleTransition, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionClientT::handleFeedback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + + template +diff --git a/actionlib/include/actionlib/managed_list.h b/actionlib/include/actionlib/managed_list.h +index 2c91960..b2c4f89 100644 +--- a/actionlib/include/actionlib/managed_list.h ++++ b/actionlib/include/actionlib/managed_list.h +@@ -218,7 +218,7 @@ private: + */ + Handle add(const T & elem) + { +- return add(elem, boost::bind(&ManagedList::defaultDeleter, this, _1) ); ++ return add(elem, boost::bind(&ManagedList::defaultDeleter, this, boost::placeholders::_1) ); + } + + /** +diff --git a/actionlib/include/actionlib/one_shot_timer.h b/actionlib/include/actionlib/one_shot_timer.h +index e3c821d..7839294 100644 +--- a/actionlib/include/actionlib/one_shot_timer.h ++++ b/actionlib/include/actionlib/one_shot_timer.h +@@ -60,7 +60,7 @@ public: + + boost::function getCb() + { +- return boost::bind(&OneShotTimer::cb, this, _1); ++ return boost::bind(&OneShotTimer::cb, this, boost::placeholders::_1); + } + + void registerOneShotCb(boost::function callback) +diff --git a/actionlib/include/actionlib/server/action_server_imp.h b/actionlib/include/actionlib/server/action_server_imp.h +index 2a088b1..837b9c4 100644 +--- a/actionlib/include/actionlib/server/action_server_imp.h ++++ b/actionlib/include/actionlib/server/action_server_imp.h +@@ -172,15 +172,15 @@ void ActionServer::initialize() + + if (status_frequency > 0) { + status_timer_ = node_.createTimer(ros::Duration(1.0 / status_frequency), +- boost::bind(&ActionServer::publishStatus, this, _1)); ++ boost::bind(&ActionServer::publishStatus, this, boost::placeholders::_1)); + } + + goal_sub_ = node_.subscribe("goal", static_cast(sub_queue_size), +- boost::bind(&ActionServerBase::goalCallback, this, _1)); ++ boost::bind(&ActionServerBase::goalCallback, this, boost::placeholders::_1)); + + cancel_sub_ = + node_.subscribe("cancel", static_cast(sub_queue_size), +- boost::bind(&ActionServerBase::cancelCallback, this, _1)); ++ boost::bind(&ActionServerBase::cancelCallback, this, boost::placeholders::_1)); + } + + template +diff --git a/actionlib/include/actionlib/server/service_server_imp.h b/actionlib/include/actionlib/server/service_server_imp.h +index ac5444d..2f0265e 100644 +--- a/actionlib/include/actionlib/server/service_server_imp.h ++++ b/actionlib/include/actionlib/server/service_server_imp.h +@@ -58,7 +58,7 @@ ServiceServerImpT::ServiceServerImpT(ros::NodeHandle n, std::string + : service_cb_(service_cb) + { + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&ServiceServerImpT::goalCB, this, _1), false)); ++ boost::bind(&ServiceServerImpT::goalCB, this, boost::placeholders::_1), false)); + as_->start(); + } + +diff --git a/actionlib/include/actionlib/server/simple_action_server_imp.h b/actionlib/include/actionlib/server/simple_action_server_imp.h +index 0255515..a361cd7 100644 +--- a/actionlib/include/actionlib/server/simple_action_server_imp.h ++++ b/actionlib/include/actionlib/server/simple_action_server_imp.h +@@ -56,8 +56,8 @@ SimpleActionServer::SimpleActionServer(std::string name, + + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + } + +@@ -68,8 +68,8 @@ SimpleActionServer::SimpleActionServer(std::string name, bool auto_s + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -85,8 +85,8 @@ SimpleActionServer::SimpleActionServer(std::string name, + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + true)); + + if (execute_callback_) { +@@ -104,8 +104,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -121,8 +121,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -138,8 +138,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + true)); + + if (execute_callback_) { +diff --git a/actionlib/test/add_two_ints_server.cpp b/actionlib/test/add_two_ints_server.cpp +index 098c315..84ddace 100644 +--- a/actionlib/test/add_two_ints_server.cpp ++++ b/actionlib/test/add_two_ints_server.cpp +@@ -53,7 +53,7 @@ int main(int argc, char ** argv) + + actionlib::ServiceServer service = actionlib::advertiseService(n, + "add_two_ints", +- boost::bind(add, _1, _2)); ++ boost::bind(add, boost::placeholders::_1, boost::placeholders::_2)); + + ros::spin(); + +diff --git a/actionlib/test/ref_server.cpp b/actionlib/test/ref_server.cpp +index 1da0ab5..7aede23 100644 +--- a/actionlib/test/ref_server.cpp ++++ b/actionlib/test/ref_server.cpp +@@ -61,8 +61,8 @@ using namespace actionlib; + + RefServer::RefServer(ros::NodeHandle & n, const std::string & name) + : ActionServer(n, name, +- boost::bind(&RefServer::goalCallback, this, _1), +- boost::bind(&RefServer::cancelCallback, this, _1), ++ boost::bind(&RefServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&RefServer::cancelCallback, this, boost::placeholders::_1), + false) + { + start(); +diff --git a/actionlib/test/server_goal_handle_destruction.cpp b/actionlib/test/server_goal_handle_destruction.cpp +index 9e179c7..ed12d2b 100644 +--- a/actionlib/test/server_goal_handle_destruction.cpp ++++ b/actionlib/test/server_goal_handle_destruction.cpp +@@ -67,7 +67,7 @@ ServerGoalHandleDestructionTester::ServerGoalHandleDestructionTester() + as_ = new ActionServer(nh_, "reference_action", false); + as_->start(); + as_->registerGoalCallback(boost::bind(&ServerGoalHandleDestructionTester::goalCallback, this, +- _1)); ++ boost::placeholders::_1)); + gh_ = new GoalHandle(); + } + +diff --git a/actionlib/test/simple_client_test.cpp b/actionlib/test/simple_client_test.cpp +index 341bbc9..ea40050 100644 +--- a/actionlib/test/simple_client_test.cpp ++++ b/actionlib/test/simple_client_test.cpp +@@ -106,7 +106,7 @@ TEST(SimpleClient, easy_callback) + + bool called = false; + goal.goal = 1; +- SimpleActionClient::SimpleDoneCallback func = boost::bind(&easyDoneCallback, &called, &client, _1, _2); ++ SimpleActionClient::SimpleDoneCallback func = boost::bind(&easyDoneCallback, &called, &client, boost::placeholders::_1, boost::placeholders::_2); + client.sendGoal(goal, func); + finished = client.waitForResult(ros::Duration(10.0)); + ASSERT_TRUE(finished); +diff --git a/actionlib/test/simple_execute_ref_server.cpp b/actionlib/test/simple_execute_ref_server.cpp +index 57aa9cd..b663ec4 100644 +--- a/actionlib/test/simple_execute_ref_server.cpp ++++ b/actionlib/test/simple_execute_ref_server.cpp +@@ -61,7 +61,7 @@ using namespace actionlib; + + SimpleExecuteRefServer::SimpleExecuteRefServer() + : as_(nh_, "reference_action", boost::bind(&SimpleExecuteRefServer::executeCallback, this, +- _1), false) ++ boost::placeholders::_1), false) + { + as_.start(); + } diff --git a/recipes/ros-noetic-actionlib/recipe.yaml b/recipes/ros-noetic-actionlib/recipe.yaml new file mode 100644 index 000000000..45e03123f --- /dev/null +++ b/recipes/ros-noetic-actionlib/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-actionlib + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/actionlib-release.git + git_rev: release/noetic/actionlib/1.14.0-1 + folder: ros-noetic-actionlib/src/work + patches: + - patch/ros-noetic-actionlib.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-amcl/bld_catkin.bat b/recipes/ros-noetic-amcl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-amcl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-amcl/build_catkin.sh b/recipes/ros-noetic-amcl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-amcl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-amcl/recipe.yaml b/recipes/ros-noetic-amcl/recipe.yaml new file mode 100644 index 000000000..34c963b97 --- /dev/null +++ b/recipes/ros-noetic-amcl/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-amcl + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/amcl/1.17.3-1 + folder: ros-noetic-amcl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-map-server + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-base-local-planner/bld_catkin.bat b/recipes/ros-noetic-base-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-base-local-planner/build_catkin.sh b/recipes/ros-noetic-base-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-base-local-planner/recipe.yaml b/recipes/ros-noetic-base-local-planner/recipe.yaml new file mode 100644 index 000000000..668310381 --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/recipe.yaml @@ -0,0 +1,89 @@ +package: + name: ros-noetic-base-local-planner + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/base_local_planner/1.17.3-1 + folder: ros-noetic-base-local-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml b/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml new file mode 100644 index 000000000..f3aa0e00e --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-camera-calibration-parsers + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/camera_calibration_parsers/1.12.0-1 + folder: ros-noetic-camera-calibration-parsers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosbash + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - yaml-cpp + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-sensor-msgs + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-calibration/bld_catkin.bat b/recipes/ros-noetic-camera-calibration/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-calibration/build_catkin.sh b/recipes/ros-noetic-camera-calibration/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-calibration/recipe.yaml b/recipes/ros-noetic-camera-calibration/recipe.yaml new file mode 100644 index 000000000..75908a7bf --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-camera-calibration + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/camera_calibration/1.17.0-1 + folder: ros-noetic-camera-calibration/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - ros-noetic-message-filters + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - ros-noetic-message-filters + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-info-manager/bld_catkin.bat b/recipes/ros-noetic-camera-info-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-info-manager/build_catkin.sh b/recipes/ros-noetic-camera-info-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-info-manager/recipe.yaml b/recipes/ros-noetic-camera-info-manager/recipe.yaml new file mode 100644 index 000000000..55633d56b --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-camera-info-manager + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/camera_info_manager/1.12.0-1 + folder: ros-noetic-camera-info-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch b/recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch new file mode 100644 index 000000000..2721e4b6e --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch @@ -0,0 +1,16 @@ +diff --git a/src/chomp_trajectory.cpp b/src/chomp_trajectory.cpp +index af2c9c9c0..8291b0135 100644 +--- a/src/chomp_trajectory.cpp ++++ b/src/chomp_trajectory.cpp +@@ -153,9 +153,10 @@ void ChompTrajectory::fillInMinJerk() + + // calculate the spline coefficients for each joint: + // (these are for the special case of zero start and end vel and acc) +- std::vector coeff(num_joints_); ++ std::vector> coeff(num_joints_); + for (size_t i = 0; i < num_joints_; i++) + { ++ coeff[i].resize(6); + double x0 = (*this)(start_index, i); + double x1 = (*this)(end_index, i); + coeff[i][0] = x0; diff --git a/recipes/ros-noetic-chomp-motion-planner/recipe.yaml b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml new file mode 100644 index 000000000..7c4db1929 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-chomp-motion-planner + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/chomp_motion_planner/1.1.13-2 + folder: ros-noetic-chomp-motion-planner/src/work + patches: + - patch/ros-noetic-chomp-motion-planner.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat b/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh b/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml b/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml new file mode 100644 index 000000000..3eef079b9 --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-clear-costmap-recovery + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/clear_costmap_recovery/1.17.3-1 + folder: ros-noetic-clear-costmap-recovery/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2-ros + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-common-msgs/bld_catkin.bat b/recipes/ros-noetic-common-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-common-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-common-msgs/build_catkin.sh b/recipes/ros-noetic-common-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-common-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-common-msgs/recipe.yaml b/recipes/ros-noetic-common-msgs/recipe.yaml new file mode 100644 index 000000000..6379d4519 --- /dev/null +++ b/recipes/ros-noetic-common-msgs/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-common-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/common_msgs/1.13.1-1 + folder: ros-noetic-common-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-stereo-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-stereo-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-common-tutorials/bld_catkin.bat b/recipes/ros-noetic-common-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-common-tutorials/build_catkin.sh b/recipes/ros-noetic-common-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-common-tutorials/recipe.yaml b/recipes/ros-noetic-common-tutorials/recipe.yaml new file mode 100644 index 000000000..b5e888373 --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-common-tutorials + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/common_tutorials/0.2.0-1 + folder: ros-noetic-common-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-tutorials + - ros-noetic-catkin + - ros-noetic-nodelet-tutorial-math + - ros-noetic-pluginlib-tutorials + - ros-noetic-turtle-actionlib + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-tutorials + - ros-noetic-nodelet-tutorial-math + - ros-noetic-pluginlib-tutorials + - ros-noetic-turtle-actionlib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat b/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh b/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml b/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml new file mode 100644 index 000000000..680f71869 --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-compressed-depth-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/compressed_depth_image_transport/1.14.0-1 + folder: ros-noetic-compressed-depth-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat b/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-compressed-image-transport/build_catkin.sh b/recipes/ros-noetic-compressed-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-compressed-image-transport/recipe.yaml b/recipes/ros-noetic-compressed-image-transport/recipe.yaml new file mode 100644 index 000000000..dc11b2b1f --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-compressed-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/compressed_image_transport/1.14.0-1 + folder: ros-noetic-compressed-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-control-toolbox/bld_catkin.bat b/recipes/ros-noetic-control-toolbox/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-control-toolbox/build_catkin.sh b/recipes/ros-noetic-control-toolbox/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-control-toolbox/recipe.yaml b/recipes/ros-noetic-control-toolbox/recipe.yaml new file mode 100644 index 000000000..f30bd5e27 --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-control-toolbox + version: 1.19.0 +source: + git_url: https://github.com/ros-gbp/control_toolbox-release.git + git_rev: release/noetic/control_toolbox/1.19.0-1 + folder: ros-noetic-control-toolbox/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-control-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-generation + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-std-msgs + - tinyxml + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat b/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh b/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-controller-manager-msgs/recipe.yaml b/recipes/ros-noetic-controller-manager-msgs/recipe.yaml new file mode 100644 index 000000000..173f427e5 --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-controller-manager-msgs + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/controller_manager_msgs/0.20.0-1 + folder: ros-noetic-controller-manager-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-std-msgs + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-controller-manager/bld_catkin.bat b/recipes/ros-noetic-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-controller-manager/build_catkin.sh b/recipes/ros-noetic-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-controller-manager/recipe.yaml b/recipes/ros-noetic-controller-manager/recipe.yaml new file mode 100644 index 000000000..82ed1ea2b --- /dev/null +++ b/recipes/ros-noetic-controller-manager/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-controller-manager + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/controller_manager/0.20.0-1 + folder: ros-noetic-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-costmap-2d/bld_catkin.bat b/recipes/ros-noetic-costmap-2d/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-costmap-2d/build_catkin.sh b/recipes/ros-noetic-costmap-2d/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-costmap-2d/recipe.yaml b/recipes/ros-noetic-costmap-2d/recipe.yaml new file mode 100644 index 000000000..567022db4 --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-costmap-2d + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/costmap_2d/1.17.3-1 + folder: ros-noetic-costmap-2d/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-map-server + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-costmap-converter/bld_catkin.bat b/recipes/ros-noetic-costmap-converter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-costmap-converter/build_catkin.sh b/recipes/ros-noetic-costmap-converter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch new file mode 100644 index 000000000..2713f9fec --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch @@ -0,0 +1,77 @@ +From cb6af72f331a881fb399e651d6c9aaaf536a63e3 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer +Date: Thu, 10 Aug 2023 13:29:02 -0400 +Subject: [PATCH] Make BlobDetector inherit from cv::Feature2D + +BlobDetector currently inherits from cv::SimpleBlobDetector, which is an +interface class that doesn't provide any functionality itself. On the +other hand, every time OpenCV adds a new pure virtual method to this +interface, it breaks BlobDetector. + +This patch makes BlobDetector inherit from cv::Feature2D instead, which +should hopefully have fewer breaking changes. This requires adding a +typedef for Params, which was originally provided by +cv::SimpleBlobDetector. I also took the opportunity to make all the +parameters reference this typedef rather than directly use +cv::SimpleBlobDetector::Params. + +It is likely possible to remove inheritance from BlobDetector altogether, +since it doesn't appear to use any functionality from cv::Feature2D +either, but I decided not to do this because BlobDetector is part of the +public interface, and this could increase the likelihood of breaking +downstream packages that use this class (if any do). +--- + .../costmap_to_dynamic_obstacles/blob_detector.h | 10 ++++++---- + src/costmap_to_dynamic_obstacles/blob_detector.cpp | 4 ++-- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +index ac9b80a..9bfe5bf 100644 +--- a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h ++++ b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +@@ -57,14 +57,16 @@ + * + * See http://docs.opencv.org/trunk/d0/d7a/classcv_1_1SimpleBlobDetector.html for the original class. + */ +-class BlobDetector : public cv::SimpleBlobDetector ++class BlobDetector : public cv::Feature2D + { + public: ++ typedef cv::SimpleBlobDetector::Params Params; ++ + //! Default constructor which optionally accepts custom parameters +- BlobDetector(const cv::SimpleBlobDetector::Params& parameters = cv::SimpleBlobDetector::Params()); ++ BlobDetector(const Params& parameters = Params()); + + //! Create shared instance of the blob detector with given parameters +- static cv::Ptr create(const BlobDetector::Params& params); ++ static cv::Ptr create(const Params& params); + + /** + * @brief Detects keypoints in an image and extracts contours +@@ -90,7 +92,7 @@ class BlobDetector : public cv::SimpleBlobDetector + const std::vector>& getContours() { return contours_; } + + //! Update internal parameters +- void updateParameters(const cv::SimpleBlobDetector::Params& parameters); ++ void updateParameters(const Params& parameters); + + protected: + struct Center +diff --git a/src/costmap_to_dynamic_obstacles/blob_detector.cpp b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +index c7352f4..564cb0c 100755 +--- a/src/costmap_to_dynamic_obstacles/blob_detector.cpp ++++ b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +@@ -2,9 +2,9 @@ + #include + #include + +-BlobDetector::BlobDetector(const SimpleBlobDetector::Params& parameters) : params_(parameters) {} ++BlobDetector::BlobDetector(const Params& parameters) : params_(parameters) {} + +-cv::Ptr BlobDetector::create(const cv::SimpleBlobDetector::Params& params) ++cv::Ptr BlobDetector::create(const Params& params) + { + return cv::Ptr (new BlobDetector(params)); // compatibility with older versions + //return cv::makePtr(params); + diff --git a/recipes/ros-noetic-costmap-converter/recipe.yaml b/recipes/ros-noetic-costmap-converter/recipe.yaml new file mode 100644 index 000000000..530ba82b9 --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-costmap-converter + version: 0.0.13 +source: + git_url: https://github.com/rst-tu-dortmund/costmap_converter-release.git + git_rev: release/noetic/costmap_converter/0.0.13-1 + folder: ros-noetic-costmap-converter/src/work + patches: + - patch/ros-noetic-costmap-converter.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cv-bridge/bld_catkin.bat b/recipes/ros-noetic-cv-bridge/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cv-bridge/build_catkin.sh b/recipes/ros-noetic-cv-bridge/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch b/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch new file mode 100644 index 000000000..c6f45d381 --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch @@ -0,0 +1,35 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ef804b9..6dac00e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,27 +3,9 @@ project(cv_bridge) + + find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs) + +-if(NOT ANDROID) +- find_package(PythonLibs) +- +- if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8") +- # Debian Buster +- find_package(Boost REQUIRED python37) +- else() +- # Ubuntu Focal +- find_package(Boost REQUIRED python) +- endif() +-else() +-find_package(Boost REQUIRED) +-endif() +- +-set(_opencv_version 4) +-find_package(OpenCV 4 QUIET) +-if(NOT OpenCV_FOUND) +- 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 + COMPONENTS + opencv_core \ No newline at end of file diff --git a/recipes/ros-noetic-cv-bridge/recipe.yaml b/recipes/ros-noetic-cv-bridge/recipe.yaml new file mode 100644 index 000000000..c9d507485 --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-cv-bridge + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/cv_bridge/1.16.2-1 + folder: ros-noetic-cv-bridge/src/work + patches: + - patch/ros-noetic-cv-bridge.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-depth-image-proc/bld_catkin.bat b/recipes/ros-noetic-depth-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-depth-image-proc/build_catkin.sh b/recipes/ros-noetic-depth-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-depth-image-proc/recipe.yaml b/recipes/ros-noetic-depth-image-proc/recipe.yaml new file mode 100644 index 000000000..e68d4ada9 --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-depth-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/depth_image_proc/1.17.0-1 + folder: ros-noetic-depth-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-desktop-full/bld_catkin.bat b/recipes/ros-noetic-desktop-full/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-desktop-full/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-desktop-full/build_catkin.sh b/recipes/ros-noetic-desktop-full/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-desktop-full/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-desktop-full/recipe.yaml b/recipes/ros-noetic-desktop-full/recipe.yaml new file mode 100644 index 000000000..5a15c639a --- /dev/null +++ b/recipes/ros-noetic-desktop-full/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-desktop-full + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/desktop_full/1.5.0-1 + folder: ros-noetic-desktop-full/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-desktop + - ros-noetic-perception + - ros-noetic-simulators + - ros-noetic-urdf-sim-tutorial + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-desktop/bld_catkin.bat b/recipes/ros-noetic-desktop/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-desktop/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-desktop/build_catkin.sh b/recipes/ros-noetic-desktop/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-desktop/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-desktop/recipe.yaml b/recipes/ros-noetic-desktop/recipe.yaml new file mode 100644 index 000000000..9eb8421b0 --- /dev/null +++ b/recipes/ros-noetic-desktop/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-desktop + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/desktop/1.5.0-1 + folder: ros-noetic-desktop/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-common-tutorials + - ros-noetic-geometry-tutorials + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot + - ros-noetic-ros-tutorials + - ros-noetic-roslint + - ros-noetic-urdf-tutorial + - ros-noetic-visualization-tutorials + - ros-noetic-viz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat b/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh b/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml b/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml new file mode 100644 index 000000000..726f4a351 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-diagnostic-common-diagnostics + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostic_common_diagnostics/1.11.0-1 + folder: ros-noetic-diagnostic-common-diagnostics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - psutil + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-tf + run: + - psutil + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-rospy + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostics/bld_catkin.bat b/recipes/ros-noetic-diagnostics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostics/build_catkin.sh b/recipes/ros-noetic-diagnostics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostics/recipe.yaml b/recipes/ros-noetic-diagnostics/recipe.yaml new file mode 100644 index 000000000..9ef0b995d --- /dev/null +++ b/recipes/ros-noetic-diagnostics/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-diagnostics + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostics/1.11.0-1 + folder: ros-noetic-diagnostics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-analysis + - ros-noetic-diagnostic-common-diagnostics + - ros-noetic-diagnostic-updater + - ros-noetic-self-test + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-analysis + - ros-noetic-diagnostic-common-diagnostics + - ros-noetic-diagnostic-updater + - ros-noetic-self-test + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat b/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diff-drive-controller/build_catkin.sh b/recipes/ros-noetic-diff-drive-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diff-drive-controller/recipe.yaml b/recipes/ros-noetic-diff-drive-controller/recipe.yaml new file mode 100644 index 000000000..1ef857635 --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-diff-drive-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/diff_drive_controller/0.21.2-1 + folder: ros-noetic-diff-drive-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-rosgraph-msgs + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-tf + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat b/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh b/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml b/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml new file mode 100644 index 000000000..fb17dcc5c --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-dynamic-reconfigure + version: 1.7.3 +source: + git_url: https://github.com/ros-gbp/dynamic_reconfigure-release.git + git_rev: release/noetic/dynamic_reconfigure/1.7.3-1 + folder: ros-noetic-dynamic-reconfigure/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-effort-controllers/bld_catkin.bat b/recipes/ros-noetic-effort-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-effort-controllers/build_catkin.sh b/recipes/ros-noetic-effort-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-effort-controllers/recipe.yaml b/recipes/ros-noetic-effort-controllers/recipe.yaml new file mode 100644 index 000000000..016a43c27 --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-effort-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/effort_controllers/0.21.2-1 + folder: ros-noetic-effort-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-joint-state-controller + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-urdf + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-executive-smach/bld_catkin.bat b/recipes/ros-noetic-executive-smach/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-executive-smach/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-executive-smach/build_catkin.sh b/recipes/ros-noetic-executive-smach/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-executive-smach/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-executive-smach/recipe.yaml b/recipes/ros-noetic-executive-smach/recipe.yaml new file mode 100644 index 000000000..e8bde18f9 --- /dev/null +++ b/recipes/ros-noetic-executive-smach/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-executive-smach + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/executive_smach/2.5.2-1 + folder: ros-noetic-executive-smach/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-smach + - ros-noetic-smach-msgs + - ros-noetic-smach-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-fake-localization/bld_catkin.bat b/recipes/ros-noetic-fake-localization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-fake-localization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-fake-localization/build_catkin.sh b/recipes/ros-noetic-fake-localization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-fake-localization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-fake-localization/recipe.yaml b/recipes/ros-noetic-fake-localization/recipe.yaml new file mode 100644 index 000000000..55fcc21f3 --- /dev/null +++ b/recipes/ros-noetic-fake-localization/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-fake-localization + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/fake_localization/1.17.3-1 + folder: ros-noetic-fake-localization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat b/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh b/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml b/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml new file mode 100644 index 000000000..bbedc558d --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-force-torque-sensor-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/force_torque_sensor_controller/0.21.2-1 + folder: ros-noetic-force-torque-sensor-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-forward-command-controller/bld_catkin.bat b/recipes/ros-noetic-forward-command-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-forward-command-controller/build_catkin.sh b/recipes/ros-noetic-forward-command-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-forward-command-controller/recipe.yaml b/recipes/ros-noetic-forward-command-controller/recipe.yaml new file mode 100644 index 000000000..7fa83985b --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-forward-command-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/forward_command_controller/0.21.2-1 + folder: ros-noetic-forward-command-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat b/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-msgs/build_catkin.sh b/recipes/ros-noetic-gazebo-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-msgs/recipe.yaml b/recipes/ros-noetic-gazebo-msgs/recipe.yaml new file mode 100644 index 000000000..57b905f94 --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-gazebo-msgs + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_msgs/2.9.2-1 + folder: ros-noetic-gazebo-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch new file mode 100644 index 000000000..c2936c065 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0404e94..24c72cc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,6 +58,8 @@ generate_dynamic_reconfigure_options( + cfg/Hokuyo.cfg + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + include_directories(include + ${Boost_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch new file mode 100644 index 000000000..c8fcde64c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch @@ -0,0 +1,13 @@ +diff --git a/gazebo_plugins/CMakeLists.txt b/gazebo_plugins/CMakeLists.txt +index 38c94d1d1..29e421a71 100644 +--- a/gazebo_plugins/CMakeLists.txt ++++ b/gazebo_plugins/CMakeLists.txt +@@ -313,7 +313,7 @@ add_library(gazebo_ros_skid_steer_drive src/gazebo_ros_skid_steer_drive.cpp) + target_link_libraries(gazebo_ros_skid_steer_drive ${catkin_LIBRARIES} ${Boost_LIBRARIES}) + + add_library(gazebo_ros_video src/gazebo_ros_video.cpp) +-target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${opencv_LIBRARIES}) ++target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${OpenCV_LIBRARIES}) + + add_library(gazebo_ros_planar_move src/gazebo_ros_planar_move.cpp) + target_link_libraries(gazebo_ros_planar_move ${catkin_LIBRARIES} ${Boost_LIBRARIES}) diff --git a/recipes/ros-noetic-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..1141c17c0 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/recipe.yaml @@ -0,0 +1,108 @@ +package: + name: ros-noetic-gazebo-plugins + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_plugins/2.9.2-1 + folder: ros-noetic-gazebo-plugins/src/work + patches: + - patch/ros-noetic-gazebo-plugins.patch + - patch/ros-noetic-gazebo-plugins.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tbb + - tbb-devel + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch b/recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch new file mode 100644 index 000000000..f68fbf7f5 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 58304f3..c8c5f20 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,6 +32,8 @@ catkin_package( + LIBRARIES ${PROJECT_NAME} default_robot_hw_sim + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + link_directories( + ${catkin_LIBRARY_DIRS} + ) diff --git a/recipes/ros-noetic-gazebo-ros-control/recipe.yaml b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml new file mode 100644 index 000000000..cdd60c7f2 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-gazebo-ros-control + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros_control/2.9.2-1 + folder: ros-noetic-gazebo-ros-control/src/work + patches: + - patch/ros-noetic-gazebo-ros-control.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-toolbox + - ros-noetic-controller-manager + - ros-noetic-gazebo-dev + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-transmission-interface + - ros-noetic-urdf + - tbb + - tbb-devel + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-control-toolbox + - ros-noetic-controller-manager + - ros-noetic-gazebo-ros + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-transmission-interface + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh b/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml b/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml new file mode 100644 index 000000000..e620088be --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-gazebo-ros-pkgs + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros_pkgs/2.9.2-1 + folder: ros-noetic-gazebo-ros-pkgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-plugins + - ros-noetic-gazebo-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros/build_catkin.sh b/recipes/ros-noetic-gazebo-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch b/recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch new file mode 100644 index 000000000..d60d7b794 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1d5f7aa..8d1b0cb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -69,6 +69,8 @@ catkin_package( + TinyXML + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + include_directories( + include + ${Boost_INCLUDE_DIRS} + diff --git a/recipes/ros-noetic-gazebo-ros/recipe.yaml b/recipes/ros-noetic-gazebo-ros/recipe.yaml new file mode 100644 index 000000000..7d6bee930 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-gazebo-ros + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros/2.9.2-1 + folder: ros-noetic-gazebo-ros/src/work + patches: + - patch/ros-noetic-gazebo-ros.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - tbb + - tbb-devel + - tinyxml + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat b/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry-tutorials/build_catkin.sh b/recipes/ros-noetic-geometry-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry-tutorials/recipe.yaml b/recipes/ros-noetic-geometry-tutorials/recipe.yaml new file mode 100644 index 000000000..ff541e99f --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-geometry-tutorials + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/geometry_tutorials/0.2.3-1 + folder: ros-noetic-geometry-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-turtle-tf + - ros-noetic-turtle-tf2 + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-turtle-tf + - ros-noetic-turtle-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry/bld_catkin.bat b/recipes/ros-noetic-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry/build_catkin.sh b/recipes/ros-noetic-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry/recipe.yaml b/recipes/ros-noetic-geometry/recipe.yaml new file mode 100644 index 000000000..44a3f3c0d --- /dev/null +++ b/recipes/ros-noetic-geometry/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-geometry + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/geometry/1.13.2-1 + folder: ros-noetic-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-eigen-conversions + - ros-noetic-kdl-conversions + - ros-noetic-tf + - ros-noetic-tf-conversions + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-eigen-conversions + - ros-noetic-kdl-conversions + - ros-noetic-tf + - ros-noetic-tf-conversions + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry2/bld_catkin.bat b/recipes/ros-noetic-geometry2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry2/build_catkin.sh b/recipes/ros-noetic-geometry2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry2/recipe.yaml b/recipes/ros-noetic-geometry2/recipe.yaml new file mode 100644 index 000000000..91c58093c --- /dev/null +++ b/recipes/ros-noetic-geometry2/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-geometry2 + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/geometry2/0.7.7-1 + folder: ros-noetic-geometry2/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-tf2 + - ros-noetic-tf2-bullet + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-tf2-tools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-bullet + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-tf2-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gmapping/bld_catkin.bat b/recipes/ros-noetic-gmapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gmapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gmapping/build_catkin.sh b/recipes/ros-noetic-gmapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gmapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch new file mode 100644 index 000000000..fc1a6294f --- /dev/null +++ b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 04f3c8d..c4ea9c2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,7 +3,7 @@ project(gmapping) + + find_package(catkin REQUIRED nav_msgs nodelet openslam_gmapping roscpp tf rosbag_storage) + +-find_package(Boost REQUIRED) ++find_package(Boost COMPONENTS thread system program_options REQUIRED) + + include_directories(${Boost_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) + diff --git a/recipes/ros-noetic-gmapping/recipe.yaml b/recipes/ros-noetic-gmapping/recipe.yaml new file mode 100644 index 000000000..3bf49b428 --- /dev/null +++ b/recipes/ros-noetic-gmapping/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-gmapping + version: 1.4.2 +source: + git_url: https://github.com/ros-gbp/slam_gmapping-release.git + git_rev: release/noetic/gmapping/1.4.2-1 + folder: ros-noetic-gmapping/src/work + patches: + - patch/ros-noetic-gmapping.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat b/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gripper-action-controller/build_catkin.sh b/recipes/ros-noetic-gripper-action-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gripper-action-controller/recipe.yaml b/recipes/ros-noetic-gripper-action-controller/recipe.yaml new file mode 100644 index 000000000..3147c4e0c --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-gripper-action-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/gripper_action_controller/0.21.2-1 + folder: ros-noetic-gripper-action-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat b/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh b/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-trajectory-server/recipe.yaml b/recipes/ros-noetic-hector-trajectory-server/recipe.yaml new file mode 100644 index 000000000..2c6ebffd4 --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-hector-trajectory-server + version: 0.5.2 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_slam-release.git + git_rev: release/noetic/hector_trajectory_server/0.5.2-4 + folder: ros-noetic-hector-trajectory-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-hector-map-tools + - ros-noetic-hector-nav-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hector-map-tools + - ros-noetic-hector-nav-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat b/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh b/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml b/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml new file mode 100644 index 000000000..e67bbad79 --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-hls-lfcd-lds-driver + version: 1.1.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/hls-lfcd-lds-driver-release.git + git_rev: release/noetic/hls_lfcd_lds_driver/1.1.2-1 + folder: ros-noetic-hls-lfcd-lds-driver/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-common/bld_catkin.bat b/recipes/ros-noetic-image-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-common/build_catkin.sh b/recipes/ros-noetic-image-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-common/recipe.yaml b/recipes/ros-noetic-image-common/recipe.yaml new file mode 100644 index 000000000..1e63c58d6 --- /dev/null +++ b/recipes/ros-noetic-image-common/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-image-common + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/image_common/1.12.0-1 + folder: ros-noetic-image-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-polled-camera + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-camera-info-manager + - ros-noetic-image-transport + - ros-noetic-polled-camera + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-geometry/bld_catkin.bat b/recipes/ros-noetic-image-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-geometry/build_catkin.sh b/recipes/ros-noetic-image-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-geometry/recipe.yaml b/recipes/ros-noetic-image-geometry/recipe.yaml new file mode 100644 index 000000000..1cd33c2fd --- /dev/null +++ b/recipes/ros-noetic-image-geometry/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-geometry + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/image_geometry/1.16.2-1 + folder: ros-noetic-image-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-sensor-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-image-pipeline/bld_catkin.bat b/recipes/ros-noetic-image-pipeline/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-pipeline/build_catkin.sh b/recipes/ros-noetic-image-pipeline/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-pipeline/recipe.yaml b/recipes/ros-noetic-image-pipeline/recipe.yaml new file mode 100644 index 000000000..a2e1ff6e6 --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-image-pipeline + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_pipeline/1.17.0-1 + folder: ros-noetic-image-pipeline/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration + - ros-noetic-catkin + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-image-publisher + - ros-noetic-image-rotate + - ros-noetic-image-view + - ros-noetic-stereo-image-proc + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-image-publisher + - ros-noetic-image-rotate + - ros-noetic-image-view + - ros-noetic-stereo-image-proc + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-proc/bld_catkin.bat b/recipes/ros-noetic-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-proc/build_catkin.sh b/recipes/ros-noetic-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-proc/recipe.yaml b/recipes/ros-noetic-image-proc/recipe.yaml new file mode 100644 index 000000000..e5c5e159c --- /dev/null +++ b/recipes/ros-noetic-image-proc/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_proc/1.17.0-1 + folder: ros-noetic-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-publisher/bld_catkin.bat b/recipes/ros-noetic-image-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-publisher/build_catkin.sh b/recipes/ros-noetic-image-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-publisher/recipe.yaml b/recipes/ros-noetic-image-publisher/recipe.yaml new file mode 100644 index 000000000..1dca6dd1a --- /dev/null +++ b/recipes/ros-noetic-image-publisher/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-image-publisher + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_publisher/1.17.0-1 + folder: ros-noetic-image-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-rotate/bld_catkin.bat b/recipes/ros-noetic-image-rotate/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-rotate/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-rotate/build_catkin.sh b/recipes/ros-noetic-image-rotate/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-rotate/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-rotate/recipe.yaml b/recipes/ros-noetic-image-rotate/recipe.yaml new file mode 100644 index 000000000..efc773047 --- /dev/null +++ b/recipes/ros-noetic-image-rotate/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-rotate + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_rotate/1.17.0-1 + folder: ros-noetic-image-rotate/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport-plugins/build_catkin.sh b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport-plugins/recipe.yaml b/recipes/ros-noetic-image-transport-plugins/recipe.yaml new file mode 100644 index 000000000..7762ba2ce --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-image-transport-plugins + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/image_transport_plugins/1.14.0-1 + folder: ros-noetic-image-transport-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-theora-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-theora-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport/bld_catkin.bat b/recipes/ros-noetic-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport/build_catkin.sh b/recipes/ros-noetic-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport/recipe.yaml b/recipes/ros-noetic-image-transport/recipe.yaml new file mode 100644 index 000000000..0c7b34db1 --- /dev/null +++ b/recipes/ros-noetic-image-transport/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-image-transport + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/image_transport/1.12.0-1 + folder: ros-noetic-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-view/bld_catkin.bat b/recipes/ros-noetic-image-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-view/build_catkin.sh b/recipes/ros-noetic-image-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-view/recipe.yaml b/recipes/ros-noetic-image-view/recipe.yaml new file mode 100644 index 000000000..950c5cc1e --- /dev/null +++ b/recipes/ros-noetic-image-view/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-image-view + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_view/1.17.0-1 + folder: ros-noetic-image-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nodelet + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat b/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh b/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-complementary-filter/recipe.yaml b/recipes/ros-noetic-imu-complementary-filter/recipe.yaml new file mode 100644 index 000000000..de7908249 --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-imu-complementary-filter + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_complementary_filter/1.2.6-1 + folder: ros-noetic-imu-complementary-filter/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat b/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh b/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml b/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml new file mode 100644 index 000000000..1d740559b --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-imu-filter-madgwick + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_filter_madgwick/1.2.6-1 + folder: ros-noetic-imu-filter-madgwick/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat b/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh b/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-sensor-controller/recipe.yaml b/recipes/ros-noetic-imu-sensor-controller/recipe.yaml new file mode 100644 index 000000000..e1fba5471 --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-imu-sensor-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/imu_sensor_controller/0.21.2-1 + folder: ros-noetic-imu-sensor-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-tools/bld_catkin.bat b/recipes/ros-noetic-imu-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-tools/build_catkin.sh b/recipes/ros-noetic-imu-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-tools/recipe.yaml b/recipes/ros-noetic-imu-tools/recipe.yaml new file mode 100644 index 000000000..6819300c8 --- /dev/null +++ b/recipes/ros-noetic-imu-tools/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-imu-tools + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_tools/1.2.6-1 + folder: ros-noetic-imu-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch new file mode 100644 index 000000000..31758ea76 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch @@ -0,0 +1,45 @@ +diff --git a/scripts/menu.py b/scripts/menu.py +index e2d1854..dc93108 100755 +--- a/scripts/menu.py ++++ b/scripts/menu.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -68,7 +70,7 @@ def modeCb(feedback): + + rospy.loginfo("Switching to menu entry #" + str(h_mode_last)) + menu_handler.reApply( server ) +- print "DONE" ++ print("DONE") + server.applyChanges() + + def makeBox( msg ): +diff --git a/scripts/simple_marker.py b/scripts/simple_marker.py +index fe44c12..0d13c9a 100755 +--- a/scripts/simple_marker.py ++++ b/scripts/simple_marker.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -36,7 +38,7 @@ from visualization_msgs.msg import * + + def processFeedback(feedback): + p = feedback.pose.position +- print feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z) ++ print(feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z)) + + if __name__=="__main__": + rospy.init_node("simple_marker") + diff --git a/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml b/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml new file mode 100644 index 000000000..2e1f26042 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-interactive-marker-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/interactive_marker_tutorials/0.11.0-1 + folder: ros-noetic-interactive-marker-tutorials/src/work + patches: + - patch/ros-noetic-interactive-marker-tutorials.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-markers/bld_catkin.bat b/recipes/ros-noetic-interactive-markers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-markers/build_catkin.sh b/recipes/ros-noetic-interactive-markers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-markers/recipe.yaml b/recipes/ros-noetic-interactive-markers/recipe.yaml new file mode 100644 index 000000000..ac7aecca6 --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-interactive-markers + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/interactive_markers-release.git + git_rev: release/noetic/interactive_markers/1.12.0-1 + folder: ros-noetic-interactive-markers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-controller/bld_catkin.bat b/recipes/ros-noetic-joint-state-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-controller/build_catkin.sh b/recipes/ros-noetic-joint-state-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-controller/recipe.yaml b/recipes/ros-noetic-joint-state-controller/recipe.yaml new file mode 100644 index 000000000..9b9a33399 --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-joint-state-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/joint_state_controller/0.21.2-1 + folder: ros-noetic-joint-state-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat b/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh b/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch b/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch new file mode 100644 index 000000000..f6baef1b2 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch @@ -0,0 +1,22 @@ +diff --git a/src/joint_state_publisher_gui/__init__.py b/src/joint_state_publisher_gui/__init__.py +index b4aa139..71b2ca1 100644 +--- a/src/joint_state_publisher_gui/__init__.py ++++ b/src/joint_state_publisher_gui/__init__.py +@@ -100,7 +100,7 @@ class JointStatePublisherGui(QWidget): + + slider.setFont(font) + slider.setRange(0, RANGE) +- slider.setValue(RANGE/2) ++ slider.setValue(int(RANGE/2)) + + joint_layout.addWidget(slider) + +@@ -222,7 +222,7 @@ class JointStatePublisherGui(QWidget): + self.update_sliders() + + def valueToSlider(self, value, joint): +- return (value - joint['min']) * float(RANGE) / (joint['max'] - joint['min']) ++ return int((value - joint['min']) * float(RANGE) / (joint['max'] - joint['min'])) + + def sliderToValue(self, slider, joint): + pctvalue = slider / float(RANGE) diff --git a/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml b/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml new file mode 100644 index 000000000..0a009b1c4 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-joint-state-publisher-gui + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joint_state_publisher-release.git + git_rev: release/noetic/joint_state_publisher_gui/1.15.1-1 + folder: ros-noetic-joint-state-publisher-gui/src/work + patches: + - patch/ros-noetic-joint-state-publisher-gui.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat b/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-publisher/build_catkin.sh b/recipes/ros-noetic-joint-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-publisher/recipe.yaml b/recipes/ros-noetic-joint-state-publisher/recipe.yaml new file mode 100644 index 000000000..c34d755e5 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-joint-state-publisher + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joint_state_publisher-release.git + git_rev: release/noetic/joint_state_publisher/1.15.1-1 + folder: ros-noetic-joint-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat b/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh b/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml b/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml new file mode 100644 index 000000000..2a7fcec87 --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-joint-trajectory-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/joint_trajectory_controller/0.21.2-1 + folder: ros-noetic-joint-trajectory-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-code-coverage + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-assembler/bld_catkin.bat b/recipes/ros-noetic-laser-assembler/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-assembler/build_catkin.sh b/recipes/ros-noetic-laser-assembler/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-assembler/recipe.yaml b/recipes/ros-noetic-laser-assembler/recipe.yaml new file mode 100644 index 000000000..a9244c053 --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-laser-assembler + version: 1.7.8 +source: + git_url: https://github.com/ros-gbp/laser_assembler-release.git + git_rev: release/noetic/laser_assembler/1.7.8-1 + folder: ros-noetic-laser-assembler/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-filters/bld_catkin.bat b/recipes/ros-noetic-laser-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-filters/build_catkin.sh b/recipes/ros-noetic-laser-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-filters/recipe.yaml b/recipes/ros-noetic-laser-filters/recipe.yaml new file mode 100644 index 000000000..102f07582 --- /dev/null +++ b/recipes/ros-noetic-laser-filters/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-laser-filters + version: 1.9.0 +source: + git_url: https://github.com/ros-gbp/laser_filters-release.git + git_rev: release/noetic/laser_filters/1.9.0-1 + folder: ros-noetic-laser-filters/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-geometry/bld_catkin.bat b/recipes/ros-noetic-laser-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-geometry/build_catkin.sh b/recipes/ros-noetic-laser-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-geometry/recipe.yaml b/recipes/ros-noetic-laser-geometry/recipe.yaml new file mode 100644 index 000000000..06528cf52 --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-laser-geometry + version: 1.6.7 +source: + git_url: https://github.com/ros-gbp/laser_geometry-release.git + git_rev: release/noetic/laser_geometry/1.6.7-1 + folder: ros-noetic-laser-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + run: + - boost + - eigen + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-pipeline/bld_catkin.bat b/recipes/ros-noetic-laser-pipeline/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-pipeline/build_catkin.sh b/recipes/ros-noetic-laser-pipeline/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-pipeline/recipe.yaml b/recipes/ros-noetic-laser-pipeline/recipe.yaml new file mode 100644 index 000000000..6f267a029 --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-laser-pipeline + version: 1.6.4 +source: + git_url: https://github.com/ros-gbp/laser_pipeline-release.git + git_rev: release/noetic/laser_pipeline/1.6.4-1 + folder: ros-noetic-laser-pipeline/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-laser-assembler + - ros-noetic-laser-filters + - ros-noetic-laser-geometry + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-laser-assembler + - ros-noetic-laser-filters + - ros-noetic-laser-geometry + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat b/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-librviz-tutorial/build_catkin.sh b/recipes/ros-noetic-librviz-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch b/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch new file mode 100644 index 000000000..c405d0eea --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch @@ -0,0 +1,23 @@ +diff --git a/librviz_tutorial/CMakeLists.txt b/librviz_tutorial/CMakeLists.txt +index cc430f33..3490fa76 100644 +--- a/librviz_tutorial/CMakeLists.txt ++++ b/librviz_tutorial/CMakeLists.txt +@@ -13,6 +13,18 @@ link_directories(${catkin_LIBRARY_DIRS}) + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This plugin includes Qt widgets, so we must include Qt. + ## We'll use the version that rviz used so they are compatible. + if(rviz_QT_VERSION VERSION_LESS "5") diff --git a/recipes/ros-noetic-librviz-tutorial/recipe.yaml b/recipes/ros-noetic-librviz-tutorial/recipe.yaml new file mode 100644 index 000000000..d89a1196f --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-librviz-tutorial + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/librviz_tutorial/0.11.0-1 + folder: ros-noetic-librviz-tutorial/src/work + patches: + - patch/ros-noetic-librviz-tutorial.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-map-msgs/bld_catkin.bat b/recipes/ros-noetic-map-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-map-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-map-msgs/build_catkin.sh b/recipes/ros-noetic-map-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-map-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-map-msgs/recipe.yaml b/recipes/ros-noetic-map-msgs/recipe.yaml new file mode 100644 index 000000000..a65ad03d8 --- /dev/null +++ b/recipes/ros-noetic-map-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-map-msgs + version: 1.14.1 +source: + git_url: https://github.com/ros-gbp/navigation_msgs-release.git + git_rev: release/noetic/map_msgs/1.14.1-1 + folder: ros-noetic-map-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-costmap-core/recipe.yaml b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml new file mode 100644 index 000000000..fd9cb9dc8 --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-mbf-costmap-core + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_costmap_core/0.4.0-1 + folder: ros-noetic-mbf-costmap-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-utility/bld_catkin.bat b/recipes/ros-noetic-mbf-utility/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-utility/build_catkin.sh b/recipes/ros-noetic-mbf-utility/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-utility/recipe.yaml b/recipes/ros-noetic-mbf-utility/recipe.yaml new file mode 100644 index 000000000..a8518c8f6 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-mbf-utility + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_utility/0.4.0-1 + folder: ros-noetic-mbf-utility/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat b/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh b/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch b/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch new file mode 100644 index 000000000..e772b6637 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9192d7f..9be8dd3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -128,7 +128,6 @@ catkin_package( + include_directories(${catkin_INCLUDE_DIRS} include ${COMMON_DIR}/include) + + # 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(LIB_SRC_FILES +@@ -198,11 +198,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 +-if(DEFINED ENV{ROS_VERSION}) +- add_definitions(-DMICROSTRAIN_ROS_VERSION=$ENV{ROS_VERSION}) +-else() +- message(FATAL_ERROR "ROS_VERSION environment variable is not set.") +-endif() ++add_definitions(-DMICROSTRAIN_ROS_VERSION=1) + + # 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 +--- 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 + RosTimerType createTimer(RosNodeType* node, double hz, void (ClassType::*fp)(), ClassType* obj) + { + return std::make_shared<::ros::Timer>( +- node->template createTimer(ros::Duration(1.0 / hz), [=](const ros::TimerEvent& event) { (obj->*fp)(); })); ++ node->createTimer(::ros::Duration(1.0 / hz), [obj, fp](const ::ros::TimerEvent&) { (obj->*fp)(); })); + } + + /** diff --git a/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml b/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml new file mode 100644 index 000000000..ae5a55f28 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-microstrain-inertial-driver + version: 3.2.1 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_driver/3.2.1-1 + folder: ros-noetic-microstrain-inertial-driver/src/work + patches: + - patch/ros-noetic-microstrain-inertial-driver.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - git + host: + - libcurl + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-mavros-msgs + - ros-noetic-message-generation + - ros-noetic-microstrain-inertial-msgs + - ros-noetic-nav-msgs + - ros-noetic-nmea-msgs + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-mavros-msgs + - ros-noetic-message-runtime + - ros-noetic-microstrain-inertial-msgs + - ros-noetic-nav-msgs + - ros-noetic-nmea-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-move-base/bld_catkin.bat b/recipes/ros-noetic-move-base/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-move-base/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-move-base/build_catkin.sh b/recipes/ros-noetic-move-base/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-move-base/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-move-base/recipe.yaml b/recipes/ros-noetic-move-base/recipe.yaml new file mode 100644 index 000000000..6f97d9317 --- /dev/null +++ b/recipes/ros-noetic-move-base/recipe.yaml @@ -0,0 +1,88 @@ +package: + name: ros-noetic-move-base + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/move_base/1.17.3-1 + folder: ros-noetic-move-base/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-clear-costmap-recovery + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-move-base-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rotate-recovery + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-base-local-planner + - ros-noetic-clear-costmap-recovery + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-move-base-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rotate-recovery + - ros-noetic-std-srvs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-commander/bld_catkin.bat b/recipes/ros-noetic-moveit-commander/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-commander/build_catkin.sh b/recipes/ros-noetic-moveit-commander/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-commander/recipe.yaml b/recipes/ros-noetic-moveit-commander/recipe.yaml new file mode 100644 index 000000000..fd1db45b3 --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-moveit-commander + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_commander/1.1.13-2 + folder: ros-noetic-moveit-commander/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-rostest + run: + - assimp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-core/bld_catkin.bat b/recipes/ros-noetic-moveit-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-core/build_catkin.sh b/recipes/ros-noetic-moveit-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-core/recipe.yaml b/recipes/ros-noetic-moveit-core/recipe.yaml new file mode 100644 index 000000000..8d04be2b7 --- /dev/null +++ b/recipes/ros-noetic-moveit-core/recipe.yaml @@ -0,0 +1,122 @@ +package: + name: ros-noetic-moveit-core + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_core/1.1.13-2 + folder: ros-noetic-moveit-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - assimp + - boost + - bullet + - console_bridge + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-resources-pr2-description + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-pluginlib + - ros-noetic-pybind11-catkin + - ros-noetic-random-numbers + - ros-noetic-rosconsole + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rosunit + - ros-noetic-ruckig + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-srdfdom + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - ros-noetic-xmlrpcpp + - urdfdom + - urdfdom_headers + run: + - assimp + - boost + - bullet + - console_bridge + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-pluginlib + - ros-noetic-pybind11-catkin + - ros-noetic-random-numbers + - ros-noetic-rosconsole + - ros-noetic-roslib + - ros-noetic-rostime + - ros-noetic-ruckig + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-srdfdom + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - ros-noetic-xmlrpcpp + - urdfdom + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat b/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh b/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml b/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml new file mode 100644 index 000000000..6c82f76e2 --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-moveit-fake-controller-manager + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_fake_controller_manager/1.1.13-2 + folder: ros-noetic-moveit-fake-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat b/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-kinematics/build_catkin.sh b/recipes/ros-noetic-moveit-kinematics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-kinematics/recipe.yaml b/recipes/ros-noetic-moveit-kinematics/recipe.yaml new file mode 100644 index 000000000..877c2eca4 --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-moveit-kinematics + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_kinematics/1.1.13-2 + folder: ros-noetic-moveit-kinematics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-resources-panda-description + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-kdl + - ros-noetic-xmlrpcpp + run: + - eigen + - lxml + - orocos-kdl + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-kdl + - urdfdom + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-msgs/bld_catkin.bat b/recipes/ros-noetic-moveit-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-msgs/build_catkin.sh b/recipes/ros-noetic-moveit-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-msgs/recipe.yaml b/recipes/ros-noetic-moveit-msgs/recipe.yaml new file mode 100644 index 000000000..ec2eb487a --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-moveit-msgs + version: 0.11.4 +source: + git_url: https://github.com/ros-gbp/moveit_msgs-release.git + git_rev: release/noetic/moveit_msgs/0.11.4-1 + folder: ros-noetic-moveit-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-object-recognition-msgs + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-object-recognition-msgs + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat b/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh b/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml b/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml new file mode 100644 index 000000000..bc5ef60a7 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-planners-chomp + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners_chomp/1.1.13-2 + folder: ros-noetic-moveit-planners-chomp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch b/recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch new file mode 100644 index 000000000..3f7453ae4 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch @@ -0,0 +1,28 @@ +diff --git a/ompl_interface/CMakeLists.txt b/ompl_interface/CMakeLists.txt +index e44e0ecb1..bb1a6fdbb 100644 +--- a/ompl_interface/CMakeLists.txt ++++ b/ompl_interface/CMakeLists.txt +@@ -21,6 +21,23 @@ add_library(${MOVEIT_LIB_NAME} + ) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + ++if(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_C "${CMAKE_C_COMPILER}") ++ set(OpenMP_C_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES}) ++endif() ++if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_CXX "${CMAKE_CXX_COMPILER}") ++ set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++endif() ++ + find_package(OpenMP REQUIRED) + + target_link_libraries(${MOVEIT_LIB_NAME} ${OMPL_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) diff --git a/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml new file mode 100644 index 000000000..b113c975e --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-moveit-planners-ompl + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners_ompl/1.1.13-2 + folder: ros-noetic-moveit-planners-ompl/src/work + patches: + - patch/ros-noetic-moveit-planners-ompl.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-moveit-resources-panda-description + - ros-noetic-moveit-resources-pr2-description + - ros-noetic-moveit-ros-planning + - ros-noetic-ompl + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-ompl + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners/bld_catkin.bat b/recipes/ros-noetic-moveit-planners/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners/build_catkin.sh b/recipes/ros-noetic-moveit-planners/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners/recipe.yaml b/recipes/ros-noetic-moveit-planners/recipe.yaml new file mode 100644 index 000000000..8fdd27d72 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-moveit-planners + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners/1.1.13-2 + folder: ros-noetic-moveit-planners/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-planners-chomp + - ros-noetic-moveit-planners-ompl + - ros-noetic-pilz-industrial-motion-planner + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-plugins/bld_catkin.bat b/recipes/ros-noetic-moveit-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-plugins/build_catkin.sh b/recipes/ros-noetic-moveit-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-plugins/recipe.yaml b/recipes/ros-noetic-moveit-plugins/recipe.yaml new file mode 100644 index 000000000..81b9ce55d --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-moveit-plugins + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_plugins/1.1.13-2 + folder: ros-noetic-moveit-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-fake-controller-manager + - ros-noetic-moveit-ros-control-interface + - ros-noetic-moveit-simple-controller-manager + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml new file mode 100644 index 000000000..40abe9958 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-resources-fanuc-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_fanuc_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-fanuc-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-robot-state-publisher + - ros-noetic-tf2-ros + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-robot-state-publisher + - ros-noetic-tf2-ros + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml new file mode 100644 index 000000000..2bf98f2da --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-moveit-resources-panda-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_panda_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-panda-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-resources-panda-description + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-tf2-ros + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-resources-panda-description + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-tf2-ros + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch new file mode 100644 index 000000000..c9249fb48 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch @@ -0,0 +1,28 @@ +diff --git a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp +index 006fe89..ba54c8c 100644 +--- a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp ++++ b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp +@@ -25,10 +25,6 @@ + #include "ikfast.h" // found inside share/openrave-X.Y/python/ikfast.h + using namespace ikfast; + +-// check if the included ikfast version matches what this file was compiled with +-#define IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] +-IKFAST_COMPILE_ASSERT(IKFAST_VERSION==0x1000004a); +- + #include + #include + #include +diff --git a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp +index 25ae8ee..cb7b915 100644 +--- a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp ++++ b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp +@@ -798,7 +798,7 @@ bool IKFastKinematicsPlugin::getPositionFK(const std::vector& link_ + return false; + } + +- IkReal angles[num_joints_]; ++ IkReal* angles = new IkReal[num_joints_]; + for (unsigned char i = 0; i < num_joints_; i++) + angles[i] = joint_angles[i]; + diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml new file mode 100644 index 000000000..14e1c20ad --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_ikfast_manipulator_plugin/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/src/work + patches: + - patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-conversions + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-kdl + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-conversions + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-kdl + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml new file mode 100644 index 000000000..11849ae96 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-moveit-resources-prbt-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml new file mode 100644 index 000000000..c865b36c5 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-moveit-resources-prbt-pg70-support + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_pg70_support/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-pg70-support/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-noetic-moveit-resources-prbt-moveit-config + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh b/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml b/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml new file mode 100644 index 000000000..8f55082ff --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-ros-benchmarks + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_benchmarks/1.1.13-2 + folder: ros-noetic-moveit-ros-benchmarks/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh b/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml b/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml new file mode 100644 index 000000000..35120dbd6 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-moveit-ros-control-interface + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_control_interface/1.1.13-2 + folder: ros-noetic-moveit-ros-control-interface/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-controller-manager-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-simple-controller-manager + - ros-noetic-pluginlib + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-controller-manager-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-simple-controller-manager + - ros-noetic-pluginlib + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh b/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml b/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml new file mode 100644 index 000000000..7573650b6 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-moveit-ros-manipulation + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_manipulation/1.1.13-2 + folder: ros-noetic-moveit-ros-manipulation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh b/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml b/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml new file mode 100644 index 000000000..7170aa3a2 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-moveit-ros-move-group + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_move_group/1.1.13-2 + folder: ros-noetic-moveit-ros-move-group/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-moveit-core + - ros-noetic-moveit-kinematics + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch new file mode 100644 index 000000000..89b893d1a --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c62d9c555..d083863bd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,10 +14,6 @@ endif() + + find_package(Boost REQUIRED thread) + +-if(APPLE) +- find_package(X11 REQUIRED) +-endif(APPLE) +- + find_package(catkin REQUIRED COMPONENTS + moveit_core + moveit_msgs diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml new file mode 100644 index 000000000..f5d592d37 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-moveit-ros-occupancy-map-monitor + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_occupancy_map_monitor/1.1.13-2 + folder: ros-noetic-moveit-ros-occupancy-map-monitor/src/work + patches: + - patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-rosunit + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch b/recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch new file mode 100644 index 000000000..cf4fb7cb0 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch @@ -0,0 +1,85 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e2e3dc26e..735d225f4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,11 @@ + cmake_minimum_required(VERSION 3.1.3) + project(moveit_ros_perception) + +-option(WITH_OPENGL "Build the parts that depend on OpenGL" ON) ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64") ++ option(WITH_OPENGL "Build the parts that depend on OpenGL" OFF) ++else() ++ option(WITH_OPENGL "Build the parts that depend on OpenGL" ON) ++endif() + + find_package(Boost REQUIRED thread) + +@@ -12,6 +16,7 @@ if(WITH_OPENGL) + endif() + find_package(OpenGL REQUIRED) + find_package(GLEW REQUIRED) ++ list(INSERT CMAKE_FRAMEWORK_PATH 0 /System/Library/Frameworks) + find_package(GLUT REQUIRED) + set(gl_LIBS ${gl_LIBS} ${OPENGL_LIBRARIES}) + set(perception_GL_INCLUDE_DIRS "mesh_filter/include" "depth_image_octomap_updater/include") +@@ -45,6 +50,25 @@ find_package(catkin REQUIRED COMPONENTS + moveit_build_options() + + find_package(Eigen3 REQUIRED) ++ ++ ++ if(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_C "${CMAKE_C_COMPILER}") ++ set(OpenMP_C_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ endif() ++ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_CXX "${CMAKE_CXX_COMPILER}") ++ set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ endif() ++ + find_package(OpenMP REQUIRED) + find_package(OpenCV) + +diff --git a/mesh_filter/src/gl_renderer.cpp b/mesh_filter/src/gl_renderer.cpp +index 834d2b4ed..8ba0300b2 100644 +--- a/mesh_filter/src/gl_renderer.cpp ++++ b/mesh_filter/src/gl_renderer.cpp +@@ -37,11 +37,13 @@ + #include + #ifdef __APPLE__ + #include ++#include ++#include + #else + #include +-#endif + #include + #include ++#endif + #include + #include + #include +@@ -399,8 +401,13 @@ void mesh_filter::GLRenderer::createGLContext() + glutHideWindow(); + + for (int i = 0; i < 10; ++i) ++ { ++#ifdef __APPLE__ ++ glutCheckLoop(); ++#else + glutMainLoopEvent(); +- ++#endif ++ } + context_[thread_id] = std::pair(1, window_id); + } + else diff --git a/recipes/ros-noetic-moveit-ros-perception/recipe.yaml b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml new file mode 100644 index 000000000..b382400e8 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml @@ -0,0 +1,107 @@ +package: + name: ros-noetic-moveit-ros-perception + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_perception/1.1.13-2 + folder: ros-noetic-moveit-ros-perception/src/work + patches: + - patch/ros-noetic-moveit-ros-perception.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - glew + - llvm-openmp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - glew + - llvm-openmp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch new file mode 100644 index 000000000..272c0009e --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch @@ -0,0 +1,87 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73f1aa3ea4..67528cf75c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,9 @@ find_package(catkin REQUIRED COMPONENTS + ) + moveit_build_options() + ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(EIGENPY REQUIRED eigenpy) ++ + find_package(PythonInterp REQUIRED) + find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) + +@@ -77,8 +80,11 @@ include_directories(SYSTEM + ${catkin_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} ++ ${EIGENPY_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS}) + ++link_directories(${EIGENPY_LIBRARY_DIRS}) ++ + add_subdirectory(py_bindings_tools) + add_subdirectory(common_planning_interface_objects) + add_subdirectory(planning_scene_interface) +diff --git a/move_group_interface/CMakeLists.txt b/move_group_interface/CMakeLists.txt +index d822174bf0..c3eb1686c0 100644 +--- a/move_group_interface/CMakeLists.txt ++++ b/move_group_interface/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MOVEIT_LIB_NAME moveit_move_group_interface) + + add_library(${MOVEIT_LIB_NAME} src/move_group_interface.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") +-target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${EIGENPY_LIBRARIES}) + add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_move_group.cpp) +diff --git a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +index 17de157197..fdae58ab37 100644 +--- a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h ++++ b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +@@ -56,6 +56,20 @@ + #include + #include + ++#include ++ ++// Import/export for windows dll's and visibility for gcc shared libraries. ++ ++#ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries ++ #ifdef moveit_move_group_interface_EXPORTS // we are building a shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_EXPORT ++ #else // we are using shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_IMPORT ++ #endif ++#else // ros is being built around static libraries ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ++#endif ++ + namespace moveit + { + /** \brief Simple interface to MoveIt components */ +@@ -70,7 +84,7 @@ MOVEIT_CLASS_FORWARD(MoveGroupInterface); // Defines MoveGroupInterfacePtr, Con + \brief Client class to conveniently use the ROS interfaces provided by the move_group node. + + This class includes many default settings to make things easy to use. */ +-class MoveGroupInterface ++class MOVEIT_MOVE_GROUP_INTERFACE_DECL MoveGroupInterface + { + public: + /** \brief Default ROS parameter name from where to read the robot's URDF. Set to 'robot_description' */ +diff --git a/py_bindings_tools/CMakeLists.txt b/py_bindings_tools/CMakeLists.txt +index 1f82d7e4dc..9ef98d8136 100644 +--- a/py_bindings_tools/CMakeLists.txt ++++ b/py_bindings_tools/CMakeLists.txt +@@ -1,5 +1,9 @@ + set(MOVEIT_LIB_NAME moveit_py_bindings_tools) + ++find_package(PythonInterp REQUIRED) ++find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) ++ ++ + add_library(${MOVEIT_LIB_NAME} src/roscpp_initializer.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml b/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml new file mode 100644 index 000000000..f4b1d814f --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml @@ -0,0 +1,87 @@ +package: + name: ros-noetic-moveit-ros-planning-interface + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_planning_interface/1.1.13-2 + folder: ros-noetic-moveit-ros-planning-interface/src/work + patches: + - patch/ros-noetic-moveit-ros-planning-interface.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-eigenpy + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-eigenpy + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh b/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-planning/recipe.yaml b/recipes/ros-noetic-moveit-ros-planning/recipe.yaml new file mode 100644 index 000000000..1f265a643 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-moveit-ros-planning + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_planning/1.1.13-2 + folder: ros-noetic-moveit-ros-planning/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-srdfdom + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-srdfdom + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh b/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml b/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml new file mode 100644 index 000000000..42e2270e6 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-moveit-ros-robot-interaction + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_robot_interaction/1.1.13-2 + folder: ros-noetic-moveit-ros-robot-interaction/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh b/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml b/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml new file mode 100644 index 000000000..1bb98e2ec --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml @@ -0,0 +1,95 @@ +package: + name: ros-noetic-moveit-ros-visualization + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_visualization/1.1.13-2 + folder: ros-noetic-moveit-ros-visualization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-geometric-shapes + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-warehouse + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rviz + - ros-noetic-tf2-eigen + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometric-shapes + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-warehouse + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rviz + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh b/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml b/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml new file mode 100644 index 000000000..c6ef6c8c1 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-moveit-ros-warehouse + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_warehouse/1.1.13-2 + folder: ros-noetic-moveit-ros-warehouse/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-ros-planning + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-warehouse-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-planning + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-warehouse-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros/bld_catkin.bat b/recipes/ros-noetic-moveit-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros/build_catkin.sh b/recipes/ros-noetic-moveit-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros/recipe.yaml b/recipes/ros-noetic-moveit-ros/recipe.yaml new file mode 100644 index 000000000..e06b726b2 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-moveit-ros + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros/1.1.13-2 + folder: ros-noetic-moveit-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-benchmarks + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-visualization + - ros-noetic-moveit-ros-warehouse + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat b/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh b/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml b/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml new file mode 100644 index 000000000..cb7e16e37 --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml @@ -0,0 +1,88 @@ +package: + name: ros-noetic-moveit-setup-assistant + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_setup_assistant/1.1.13-2 + folder: ros-noetic-moveit-setup-assistant/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - ogre + - ompl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-visualization + - ros-noetic-ompl + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-rviz + - ros-noetic-srdfdom + - ros-noetic-urdf + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-visualization + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rviz + - ros-noetic-srdfdom + - ros-noetic-urdf + - ros-noetic-xacro + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat b/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh b/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml b/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml new file mode 100644 index 000000000..9383de673 --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-simple-controller-manager + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_simple_controller_manager/1.1.13-2 + folder: ros-noetic-moveit-simple-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-control-msgs + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat b/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh b/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch b/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch new file mode 100644 index 000000000..fb0478713 --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7b0544b..67994d2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -43,7 +43,7 @@ catkin_package( + + ## Build + include_directories(include) +-include_directories(SYSTEM ++include_directories( + ${catkin_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} + ) diff --git a/recipes/ros-noetic-moveit-visual-tools/recipe.yaml b/recipes/ros-noetic-moveit-visual-tools/recipe.yaml new file mode 100644 index 000000000..5c5cbb75d --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-moveit-visual-tools + version: 3.6.1 +source: + git_url: https://github.com/ros-gbp/moveit_visual_tools-release.git + git_rev: release/noetic/moveit_visual_tools/3.6.1-1 + folder: ros-noetic-moveit-visual-tools/src/work + patches: + - patch/ros-noetic-moveit-visual-tools.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz-visual-tools + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz-visual-tools + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit/bld_catkin.bat b/recipes/ros-noetic-moveit/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit/build_catkin.sh b/recipes/ros-noetic-moveit/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit/recipe.yaml b/recipes/ros-noetic-moveit/recipe.yaml new file mode 100644 index 000000000..9c6000c00 --- /dev/null +++ b/recipes/ros-noetic-moveit/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-moveit + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit/1.1.13-2 + folder: ros-noetic-moveit/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-planners + - ros-noetic-moveit-plugins + - ros-noetic-moveit-ros + - ros-noetic-moveit-setup-assistant + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nav-core/bld_catkin.bat b/recipes/ros-noetic-nav-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nav-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nav-core/build_catkin.sh b/recipes/ros-noetic-nav-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nav-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nav-core/recipe.yaml b/recipes/ros-noetic-nav-core/recipe.yaml new file mode 100644 index 000000000..59612bee5 --- /dev/null +++ b/recipes/ros-noetic-nav-core/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-nav-core + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/nav_core/1.17.3-1 + folder: ros-noetic-nav-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-navfn/bld_catkin.bat b/recipes/ros-noetic-navfn/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-navfn/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-navfn/build_catkin.sh b/recipes/ros-noetic-navfn/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-navfn/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-navfn/recipe.yaml b/recipes/ros-noetic-navfn/recipe.yaml new file mode 100644 index 000000000..d56ca1328 --- /dev/null +++ b/recipes/ros-noetic-navfn/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-navfn + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/navfn/1.17.3-1 + folder: ros-noetic-navfn/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - netpbm + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet-core/bld_catkin.bat b/recipes/ros-noetic-nodelet-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet-core/build_catkin.sh b/recipes/ros-noetic-nodelet-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet-core/recipe.yaml b/recipes/ros-noetic-nodelet-core/recipe.yaml new file mode 100644 index 000000000..948f9a84a --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-nodelet-core + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet_core/1.11.0-2 + folder: ros-noetic-nodelet-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat b/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh b/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml b/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml new file mode 100644 index 000000000..5cb6a89c2 --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-nodelet-topic-tools + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet_topic_tools/1.11.0-2 + folder: ros-noetic-nodelet-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-object-recognition-msgs/recipe.yaml b/recipes/ros-noetic-object-recognition-msgs/recipe.yaml new file mode 100644 index 000000000..cab8092ab --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-object-recognition-msgs + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/object_recognition_msgs-release.git + git_rev: release/noetic/object_recognition_msgs/0.4.2-1 + folder: ros-noetic-object-recognition-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-ros/bld_catkin.bat b/recipes/ros-noetic-octomap-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-ros/build_catkin.sh b/recipes/ros-noetic-octomap-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-ros/recipe.yaml b/recipes/ros-noetic-octomap-ros/recipe.yaml new file mode 100644 index 000000000..bc926ec47 --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-octomap-ros + version: 0.4.1 +source: + git_url: https://github.com/ros-gbp/octomap_ros-release.git + git_rev: release/noetic/octomap_ros/0.4.1-1 + folder: ros-noetic-octomap-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pcl-conversions/bld_catkin.bat b/recipes/ros-noetic-pcl-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-conversions/build_catkin.sh b/recipes/ros-noetic-pcl-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-conversions/recipe.yaml b/recipes/ros-noetic-pcl-conversions/recipe.yaml new file mode 100644 index 000000000..748658645 --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-pcl-conversions + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/pcl_conversions/1.7.4-1 + folder: ros-noetic-pcl-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-pcl-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - eigen + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pcl-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-pcl-msgs/bld_catkin.bat b/recipes/ros-noetic-pcl-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-msgs/build_catkin.sh b/recipes/ros-noetic-pcl-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-msgs/recipe.yaml b/recipes/ros-noetic-pcl-msgs/recipe.yaml new file mode 100644 index 000000000..204852153 --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-pcl-msgs + version: 0.3.0 +source: + git_url: https://github.com/ros-gbp/pcl_msgs-release.git + git_rev: release/noetic/pcl_msgs/0.3.0-1 + folder: ros-noetic-pcl-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pcl-ros/bld_catkin.bat b/recipes/ros-noetic-pcl-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-ros/build_catkin.sh b/recipes/ros-noetic-pcl-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch b/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch new file mode 100644 index 000000000..255b0c223 --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch @@ -0,0 +1,985 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2466227d..6230e32e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,15 +1,6 @@ + cmake_minimum_required(VERSION 3.0.2) + project(pcl_ros) + +-# CMake 3.1 added support for CMAKE_CXX_STANDARD to manage the C++ standard version +-# Use CMake C++ standard management where possible for better interoperability +-# with dependencies that export target standards and/or features +-if (${CMAKE_VERSION} VERSION_LESS "3.1") +- add_compile_options(-std=c++14) +-else() +- set(CMAKE_CXX_STANDARD 14) +-endif() +- + ## Find catkin packages + find_package(catkin REQUIRED COMPONENTS + dynamic_reconfigure +diff --git a/include/pcl_ros/point_cloud.h b/include/pcl_ros/point_cloud.h +index 1e038276..26e36c1b 100644 +--- a/include/pcl_ros/point_cloud.h ++++ b/include/pcl_ros/point_cloud.h +@@ -3,11 +3,12 @@ + + #include + #include +-#include ++#include + #include + #include + #include + #include ++#include // for BOOST_FOREACH + #include + #include + #include +diff --git a/src/pcl_ros/features/boundary.cpp b/src/pcl_ros/features/boundary.cpp +index 26ee07c1..61ae786a 100644 +--- a/src/pcl_ros/features/boundary.cpp ++++ b/src/pcl_ros/features/boundary.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/boundary.h" + + void +diff --git a/src/pcl_ros/features/feature.cpp b/src/pcl_ros/features/feature.cpp +index 8647e4eb..c36bd499 100644 +--- a/src/pcl_ros/features/feature.cpp ++++ b/src/pcl_ros/features/feature.cpp +@@ -35,7 +35,7 @@ + * + */ + +-//#include ++//#include + // Include the implementations here instead of compiling them separately to speed up compile time + //#include "normal_3d.cpp" + //#include "boundary.cpp" +@@ -80,7 +80,7 @@ pcl_ros::Feature::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&Feature::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&Feature::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -124,7 +124,7 @@ pcl_ros::Feature::subscribe () + } + else // Use only indices + { +- sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, boost::placeholders::_1)); + // surface not enabled, connect the input-indices duo and register + if (approximate_sync_) + sync_input_surface_indices_a_->connectInput (sub_input_filter_, nf_pc_, sub_indices_filter_); +@@ -134,7 +134,7 @@ pcl_ros::Feature::subscribe () + } + else // Use only surface + { +- sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, boost::placeholders::_1)); + // indices not enabled, connect the input-surface duo and register + sub_surface_filter_.subscribe (*pnh_, "surface", max_queue_size_); + if (approximate_sync_) +@@ -144,13 +144,13 @@ pcl_ros::Feature::subscribe () + } + // Register callbacks + if (approximate_sync_) +- sync_input_surface_indices_a_->registerCallback (bind (&Feature::input_surface_indices_callback, this, _1, _2, _3)); ++ sync_input_surface_indices_a_->registerCallback (bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_surface_indices_e_->registerCallback (bind (&Feature::input_surface_indices_callback, this, _1, _2, _3)); ++ sync_input_surface_indices_e_->registerCallback (bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Feature::input_surface_indices_callback, this, _1, PointCloudInConstPtr (), PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, PointCloudInConstPtr (), PointIndicesConstPtr ())); + } + + //////////////////////////////////////////////////////////////////////////////////////////// +@@ -300,7 +300,7 @@ pcl_ros::FeatureFromNormals::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&FeatureFromNormals::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&FeatureFromNormals::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -345,7 +345,7 @@ pcl_ros::FeatureFromNormals::subscribe () + } + else // Use only indices + { +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + if (approximate_sync_) + // surface not enabled, connect the input-indices duo and register + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_pc_, sub_indices_filter_); +@@ -359,7 +359,7 @@ pcl_ros::FeatureFromNormals::subscribe () + // indices not enabled, connect the input-surface duo and register + sub_surface_filter_.subscribe (*pnh_, "surface", max_queue_size_); + +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + if (approximate_sync_) + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, sub_surface_filter_, nf_pi_); + else +@@ -368,7 +368,7 @@ pcl_ros::FeatureFromNormals::subscribe () + } + else + { +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_pc_, nf_pi_); +@@ -378,9 +378,9 @@ pcl_ros::FeatureFromNormals::subscribe () + + // Register callbacks + if (approximate_sync_) +- sync_input_normals_surface_indices_a_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, _1, _2, _3, _4)); ++ sync_input_normals_surface_indices_a_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)); + else +- sync_input_normals_surface_indices_e_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, _1, _2, _3, _4)); ++ sync_input_normals_surface_indices_e_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/features/fpfh.cpp b/src/pcl_ros/features/fpfh.cpp +index 53be549c..f49b05ef 100644 +--- a/src/pcl_ros/features/fpfh.cpp ++++ b/src/pcl_ros/features/fpfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/fpfh.h" + + void +diff --git a/src/pcl_ros/features/fpfh_omp.cpp b/src/pcl_ros/features/fpfh_omp.cpp +index e4adcabb..c811a401 100644 +--- a/src/pcl_ros/features/fpfh_omp.cpp ++++ b/src/pcl_ros/features/fpfh_omp.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/fpfh_omp.h" + + void +diff --git a/src/pcl_ros/features/moment_invariants.cpp b/src/pcl_ros/features/moment_invariants.cpp +index a6e2249a..52801fff 100644 +--- a/src/pcl_ros/features/moment_invariants.cpp ++++ b/src/pcl_ros/features/moment_invariants.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/moment_invariants.h" + + void +diff --git a/src/pcl_ros/features/normal_3d.cpp b/src/pcl_ros/features/normal_3d.cpp +index 042186a9..3ca08fb9 100644 +--- a/src/pcl_ros/features/normal_3d.cpp ++++ b/src/pcl_ros/features/normal_3d.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d.h" + + void +diff --git a/src/pcl_ros/features/normal_3d_omp.cpp b/src/pcl_ros/features/normal_3d_omp.cpp +index 3e92d2f2..96535079 100644 +--- a/src/pcl_ros/features/normal_3d_omp.cpp ++++ b/src/pcl_ros/features/normal_3d_omp.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d_omp.h" + + void +diff --git a/src/pcl_ros/features/normal_3d_tbb.cpp b/src/pcl_ros/features/normal_3d_tbb.cpp +index 680a4a02..85261766 100644 +--- a/src/pcl_ros/features/normal_3d_tbb.cpp ++++ b/src/pcl_ros/features/normal_3d_tbb.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d_tbb.h" + + #if defined HAVE_TBB +diff --git a/src/pcl_ros/features/pfh.cpp b/src/pcl_ros/features/pfh.cpp +index dd8409e2..b00cadc4 100644 +--- a/src/pcl_ros/features/pfh.cpp ++++ b/src/pcl_ros/features/pfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/pfh.h" + + void +diff --git a/src/pcl_ros/features/principal_curvatures.cpp b/src/pcl_ros/features/principal_curvatures.cpp +index 501d686e..f8fe44ce 100644 +--- a/src/pcl_ros/features/principal_curvatures.cpp ++++ b/src/pcl_ros/features/principal_curvatures.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/principal_curvatures.h" + + void +diff --git a/src/pcl_ros/features/shot.cpp b/src/pcl_ros/features/shot.cpp +index ed6ba44b..085855f6 100644 +--- a/src/pcl_ros/features/shot.cpp ++++ b/src/pcl_ros/features/shot.cpp +@@ -34,7 +34,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/shot.h" + + void +diff --git a/src/pcl_ros/features/shot_omp.cpp b/src/pcl_ros/features/shot_omp.cpp +index 4563f123..eea70059 100644 +--- a/src/pcl_ros/features/shot_omp.cpp ++++ b/src/pcl_ros/features/shot_omp.cpp +@@ -34,7 +34,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/shot_omp.h" + + void +diff --git a/src/pcl_ros/features/vfh.cpp b/src/pcl_ros/features/vfh.cpp +index ece448fd..e1f6a40a 100644 +--- a/src/pcl_ros/features/vfh.cpp ++++ b/src/pcl_ros/features/vfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/vfh.h" + + void +diff --git a/src/pcl_ros/filters/crop_box.cpp b/src/pcl_ros/filters/crop_box.cpp +index 2392e2bc..70ab986b 100644 +--- a/src/pcl_ros/filters/crop_box.cpp ++++ b/src/pcl_ros/filters/crop_box.cpp +@@ -36,7 +36,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/crop_box.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -46,7 +46,7 @@ pcl_ros::CropBox::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&CropBox::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&CropBox::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/extract_indices.cpp b/src/pcl_ros/filters/extract_indices.cpp +index e92407a9..73ab4074 100644 +--- a/src/pcl_ros/filters/extract_indices.cpp ++++ b/src/pcl_ros/filters/extract_indices.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/extract_indices.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::ExtractIndices::child_init (ros::NodeHandle &nh, bool &has_service) + has_service = true; + + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractIndices::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractIndices::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + use_indices_ = true; +diff --git a/src/pcl_ros/filters/filter.cpp b/src/pcl_ros/filters/filter.cpp +index 0bfe6d3d..e704912b 100644 +--- a/src/pcl_ros/filters/filter.cpp ++++ b/src/pcl_ros/filters/filter.cpp +@@ -116,18 +116,18 @@ pcl_ros::Filter::subscribe() + { + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&Filter::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&Filter::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&Filter::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&Filter::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Filter::input_indices_callback, this, _1, pcl_msgs::PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Filter::input_indices_callback, this, boost::placeholders::_1, pcl_msgs::PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -164,7 +164,7 @@ pcl_ros::Filter::onInit () + if (!has_service) + { + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&Filter::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&Filter::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + } + +diff --git a/src/pcl_ros/filters/passthrough.cpp b/src/pcl_ros/filters/passthrough.cpp +index 110fbac5..73fd2c96 100644 +--- a/src/pcl_ros/filters/passthrough.cpp ++++ b/src/pcl_ros/filters/passthrough.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/passthrough.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::PassThrough::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&PassThrough::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&PassThrough::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/project_inliers.cpp b/src/pcl_ros/filters/project_inliers.cpp +index 704dc484..cdc39980 100644 +--- a/src/pcl_ros/filters/project_inliers.cpp ++++ b/src/pcl_ros/filters/project_inliers.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/project_inliers.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -99,13 +99,13 @@ pcl_ros::ProjectInliers::subscribe () + { + sync_input_indices_model_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_model_a_->connectInput (sub_input_filter_, sub_indices_filter_, sub_model_); +- sync_input_indices_model_a_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, _1, _2, _3)); ++ sync_input_indices_model_a_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + else + { + sync_input_indices_model_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_model_e_->connectInput (sub_input_filter_, sub_indices_filter_, sub_model_); +- sync_input_indices_model_e_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, _1, _2, _3)); ++ sync_input_indices_model_e_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + } + +diff --git a/src/pcl_ros/filters/radius_outlier_removal.cpp b/src/pcl_ros/filters/radius_outlier_removal.cpp +index 331c6487..aa5c91fa 100644 +--- a/src/pcl_ros/filters/radius_outlier_removal.cpp ++++ b/src/pcl_ros/filters/radius_outlier_removal.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/radius_outlier_removal.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::RadiusOutlierRemoval::child_init (ros::NodeHandle &nh, bool &has_servic + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&RadiusOutlierRemoval::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&RadiusOutlierRemoval::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/statistical_outlier_removal.cpp b/src/pcl_ros/filters/statistical_outlier_removal.cpp +index 2085dee6..e6e74cd1 100644 +--- a/src/pcl_ros/filters/statistical_outlier_removal.cpp ++++ b/src/pcl_ros/filters/statistical_outlier_removal.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/statistical_outlier_removal.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::StatisticalOutlierRemoval::child_init (ros::NodeHandle &nh, bool &has_s + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&StatisticalOutlierRemoval::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&StatisticalOutlierRemoval::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/voxel_grid.cpp b/src/pcl_ros/filters/voxel_grid.cpp +index a3bf77f2..07687f7f 100644 +--- a/src/pcl_ros/filters/voxel_grid.cpp ++++ b/src/pcl_ros/filters/voxel_grid.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/voxel_grid.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::VoxelGrid::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&VoxelGrid::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&VoxelGrid::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/io/bag_io.cpp b/src/pcl_ros/io/bag_io.cpp +index 4209d9af..902ce2f5 100644 +--- a/src/pcl_ros/io/bag_io.cpp ++++ b/src/pcl_ros/io/bag_io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include "pcl_ros/io/bag_io.h" + +diff --git a/src/pcl_ros/io/concatenate_data.cpp b/src/pcl_ros/io/concatenate_data.cpp +index 458c6bfe..47d0bb4a 100644 +--- a/src/pcl_ros/io/concatenate_data.cpp ++++ b/src/pcl_ros/io/concatenate_data.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/transforms.h" + #include "pcl_ros/io/concatenate_data.h" + +@@ -118,7 +118,7 @@ pcl_ros::PointCloudConcatenateDataSynchronizer::subscribe () + } + + // Bogus null filter +- filters_[0]->registerCallback (bind (&PointCloudConcatenateDataSynchronizer::input_callback, this, _1)); ++ filters_[0]->registerCallback (bind (&PointCloudConcatenateDataSynchronizer::input_callback, this, boost::placeholders::_1)); + + switch (input_topics_.size ()) + { +@@ -186,9 +186,9 @@ pcl_ros::PointCloudConcatenateDataSynchronizer::subscribe () + } + + if (approximate_sync_) +- ts_a_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, _1, _2, _3, _4, _5, _6, _7, _8)); ++ ts_a_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)); + else +- ts_e_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, _1, _2, _3, _4, _5, _6, _7, _8)); ++ ts_e_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/io/concatenate_fields.cpp b/src/pcl_ros/io/concatenate_fields.cpp +index b9567c3a..8b6b3c89 100644 +--- a/src/pcl_ros/io/concatenate_fields.cpp ++++ b/src/pcl_ros/io/concatenate_fields.cpp +@@ -37,7 +37,7 @@ + + /** \author Radu Bogdan Rusu */ + +-#include ++#include + #include "pcl_ros/io/concatenate_fields.h" + + #include +diff --git a/src/pcl_ros/io/io.cpp b/src/pcl_ros/io/io.cpp +index a2dcd458..58ff1152 100644 +--- a/src/pcl_ros/io/io.cpp ++++ b/src/pcl_ros/io/io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include + //#include +diff --git a/src/pcl_ros/io/pcd_io.cpp b/src/pcl_ros/io/pcd_io.cpp +index 9adf6882..31fca766 100644 +--- a/src/pcl_ros/io/pcd_io.cpp ++++ b/src/pcl_ros/io/pcd_io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/extract_clusters.cpp b/src/pcl_ros/segmentation/extract_clusters.cpp +index 5599b408..e9a03621 100644 +--- a/src/pcl_ros/segmentation/extract_clusters.cpp ++++ b/src/pcl_ros/segmentation/extract_clusters.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include "pcl_ros/segmentation/extract_clusters.h" + +@@ -76,7 +76,7 @@ pcl_ros::EuclideanClusterExtraction::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&EuclideanClusterExtraction::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&EuclideanClusterExtraction::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -108,18 +108,18 @@ pcl_ros::EuclideanClusterExtraction::subscribe () + { + sync_input_indices_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp b/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp +index ff823b19..4d31ea80 100644 +--- a/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp ++++ b/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/transforms.h" + #include "pcl_ros/segmentation/extract_polygonal_prism_data.h" + +@@ -53,7 +53,7 @@ pcl_ros::ExtractPolygonalPrismData::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractPolygonalPrismData::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractPolygonalPrismData::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + // Advertise the output topics +@@ -85,7 +85,7 @@ pcl_ros::ExtractPolygonalPrismData::subscribe () + } + else + { +- sub_input_filter_.registerCallback (bind (&ExtractPolygonalPrismData::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&ExtractPolygonalPrismData::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_hull_indices_a_->connectInput (sub_input_filter_, sub_hull_filter_, nf_); +@@ -94,9 +94,9 @@ pcl_ros::ExtractPolygonalPrismData::subscribe () + } + // Register callbacks + if (approximate_sync_) +- sync_input_hull_indices_a_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, _1, _2, _3)); ++ sync_input_hull_indices_a_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_hull_indices_e_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, _1, _2, _3)); ++ sync_input_hull_indices_e_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/sac_segmentation.cpp b/src/pcl_ros/segmentation/sac_segmentation.cpp +index bc7b97e7..4ca23d65 100644 +--- a/src/pcl_ros/segmentation/sac_segmentation.cpp ++++ b/src/pcl_ros/segmentation/sac_segmentation.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/segmentation/sac_segmentation.h" + + #include +@@ -107,7 +107,7 @@ pcl_ros::SACSegmentation::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared >(*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentation::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentation::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -144,15 +144,15 @@ pcl_ros::SACSegmentation::subscribe () + if (latched_indices_) + { + // Subscribe to a callback that saves the indices +- sub_indices_filter_.registerCallback (bind (&SACSegmentation::indices_callback, this, _1)); ++ sub_indices_filter_.registerCallback (bind (&SACSegmentation::indices_callback, this, boost::placeholders::_1)); + // Subscribe to a callback that sets the header of the saved indices to the cloud header +- sub_input_filter_.registerCallback (bind (&SACSegmentation::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&SACSegmentation::input_callback, this, boost::placeholders::_1)); + + // Synchronize the two topics. No need for an approximate synchronizer here, as we'll + // match the timestamps exactly + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, nf_pi_); +- sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + // "latched_indices" not set, proceed with regular pairs + else +@@ -161,19 +161,19 @@ pcl_ros::SACSegmentation::subscribe () + { + sync_input_indices_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&SACSegmentation::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -367,7 +367,7 @@ pcl_ros::SACSegmentationFromNormals::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentationFromNormals::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentationFromNormals::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + // Advertise the output topics +@@ -471,7 +471,7 @@ pcl_ros::SACSegmentationFromNormals::subscribe () + else + { + // Create a different callback for copying over the timestamp to fake indices +- sub_input_filter_.registerCallback (bind (&SACSegmentationFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&SACSegmentationFromNormals::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_normals_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_); +@@ -480,9 +480,9 @@ pcl_ros::SACSegmentationFromNormals::subscribe () + } + + if (approximate_sync_) +- sync_input_normals_indices_a_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, _1, _2, _3)); ++ sync_input_normals_indices_a_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_normals_indices_e_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, _1, _2, _3)); ++ sync_input_normals_indices_e_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/segment_differences.cpp b/src/pcl_ros/segmentation/segment_differences.cpp +index e3979549..1066ea3f 100644 +--- a/src/pcl_ros/segmentation/segment_differences.cpp ++++ b/src/pcl_ros/segmentation/segment_differences.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/segmentation/segment_differences.h" + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +@@ -65,20 +65,20 @@ pcl_ros::SegmentDifferences::subscribe () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SegmentDifferences::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SegmentDifferences::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + if (approximate_sync_) + { + sync_input_target_a_ = boost::make_shared > > (max_queue_size_); + sync_input_target_a_->connectInput (sub_input_filter_, sub_target_filter_); +- sync_input_target_a_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, _1, _2)); ++ sync_input_target_a_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_target_e_ = boost::make_shared > > (max_queue_size_); + sync_input_target_e_->connectInput (sub_input_filter_, sub_target_filter_); +- sync_input_target_e_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, _1, _2)); ++ sync_input_target_e_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + +diff --git a/src/pcl_ros/surface/convex_hull.cpp b/src/pcl_ros/surface/convex_hull.cpp +index 75903889..08f52f42 100644 +--- a/src/pcl_ros/surface/convex_hull.cpp ++++ b/src/pcl_ros/surface/convex_hull.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/surface/convex_hull.h" + #include + +@@ -76,19 +76,19 @@ pcl_ros::ConvexHull2D::subscribe() + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", 1, bind (&ConvexHull2D::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", 1, bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/surface/moving_least_squares.cpp b/src/pcl_ros/surface/moving_least_squares.cpp +index 9fd2e348..8baa9cb6 100644 +--- a/src/pcl_ros/surface/moving_least_squares.cpp ++++ b/src/pcl_ros/surface/moving_least_squares.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/surface/moving_least_squares.h" + ////////////////////////////////////////////////////////////////////////////////////////////// + void +@@ -62,7 +62,7 @@ pcl_ros::MovingLeastSquares::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&MovingLeastSquares::config_callback, this, _1, _2 ); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&MovingLeastSquares::config_callback, this, boost::placeholders::_1, boost::placeholders::_2 ); + srv_->setCallback (f); + + // ---[ Optional parameters +@@ -93,19 +93,19 @@ pcl_ros::MovingLeastSquares::subscribe () + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", 1, bind (&MovingLeastSquares::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", 1, bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/test/test_tf_message_filter_pcl.cpp b/src/test/test_tf_message_filter_pcl.cpp +index 073e358c..b324fc8a 100644 +--- a/src/test/test_tf_message_filter_pcl.cpp ++++ b/src/test/test_tf_message_filter_pcl.cpp +@@ -37,7 +37,7 @@ + #include + #include + +-#include ++#include + #include + + #include +@@ -104,7 +104,7 @@ TEST(MessageFilter, noTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + ros::Time stamp = ros::Time::now(); +@@ -120,7 +120,7 @@ TEST(MessageFilter, noTransformsSameFrame) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + ros::Time stamp = ros::Time::now(); +@@ -136,7 +136,7 @@ TEST(MessageFilter, preexistingTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + +@@ -157,7 +157,7 @@ TEST(MessageFilter, postTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + ros::Time stamp = ros::Time::now(); + boost::shared_ptr msg(new PCDType); +@@ -182,8 +182,8 @@ TEST(MessageFilter, queueSize) + tf::TransformListener tf_client; + Notification n(10); + MessageFilter filter(tf_client, "frame1", 10); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + ros::Time stamp = ros::Time::now(); + std::uint64_t pcl_stamp; +@@ -215,7 +215,7 @@ TEST(MessageFilter, setTargetFrame) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + filter.setTargetFrame("frame1000"); + + ros::Time stamp = ros::Time::now(); +@@ -237,7 +237,7 @@ TEST(MessageFilter, multipleTargetFrames) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + std::vector target_frames; + target_frames.push_back("frame1"); +@@ -276,7 +276,7 @@ TEST(MessageFilter, tolerance) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + filter.setTolerance(offset); + + ros::Time stamp = ros::Time::now(); +@@ -316,7 +316,7 @@ TEST(MessageFilter, outTheBackFailure) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + ros::Time stamp = ros::Time::now(); + boost::shared_ptr msg(new PCDType); +@@ -339,7 +339,7 @@ TEST(MessageFilter, emptyFrameIDFailure) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + boost::shared_ptr msg(new PCDType); + msg->header.frame_id = ""; diff --git a/recipes/ros-noetic-pcl-ros/recipe.yaml b/recipes/ros-noetic-pcl-ros/recipe.yaml new file mode 100644 index 000000000..a101064cb --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/recipe.yaml @@ -0,0 +1,104 @@ +package: + name: ros-noetic-pcl-ros + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/pcl_ros/1.7.4-1 + folder: ros-noetic-pcl-ros/src/work + patches: + - patch/ros-noetic-pcl-ros.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - eigen + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-perception-pcl/bld_catkin.bat b/recipes/ros-noetic-perception-pcl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-perception-pcl/build_catkin.sh b/recipes/ros-noetic-perception-pcl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-perception-pcl/recipe.yaml b/recipes/ros-noetic-perception-pcl/recipe.yaml new file mode 100644 index 000000000..937665308 --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-perception-pcl + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/perception_pcl/1.7.4-1 + folder: ros-noetic-perception-pcl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pcl-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-perception/bld_catkin.bat b/recipes/ros-noetic-perception/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-perception/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-perception/build_catkin.sh b/recipes/ros-noetic-perception/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-perception/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-perception/recipe.yaml b/recipes/ros-noetic-perception/recipe.yaml new file mode 100644 index 000000000..938303cd4 --- /dev/null +++ b/recipes/ros-noetic-perception/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-perception + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/perception/1.5.0-1 + folder: ros-noetic-perception/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-image-common + - ros-noetic-image-pipeline + - ros-noetic-image-transport-plugins + - ros-noetic-laser-pipeline + - ros-noetic-perception-pcl + - ros-noetic-ros-base + - ros-noetic-vision-opencv + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml new file mode 100644 index 000000000..04bb192d8 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-pilz-industrial-motion-planner-testutils + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/pilz_industrial_motion_planner_testutils/1.1.13-2 + folder: ros-noetic-pilz-industrial-motion-planner-testutils/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat b/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh b/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch b/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch new file mode 100644 index 000000000..9bc484ed4 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch @@ -0,0 +1,54 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a67a3318c..e6e07c89b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -109,7 +109,7 @@ add_library(planning_context_loader_ptp + src/joint_limits_container.cpp + ) + target_link_libraries(planning_context_loader_ptp +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(planning_context_loader_lin + src/planning_context_loader_lin.cpp +@@ -120,7 +120,7 @@ add_library(planning_context_loader_lin + src/velocity_profile_atrap.cpp + ) + target_link_libraries(planning_context_loader_lin +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(planning_context_loader_circ + src/planning_context_loader_circ.cpp +@@ -131,13 +131,16 @@ add_library(planning_context_loader_circ + src/path_circle_generator.cpp + ) + target_link_libraries(planning_context_loader_circ +- ${catkin_LIBRARIES}) ++ ${PROJECT_NAME} ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(command_list_manager + src/command_list_manager.cpp +- src/plan_components_builder.cpp) ++ src/plan_components_builder.cpp ++ src/trajectory_functions.cpp ++ src/trajectory_blender_transition_window.cpp ++ ) + target_link_libraries(command_list_manager +- ${catkin_LIBRARIES}) ++ ${PROJECT_NAME} ${catkin_LIBRARIES}) + add_dependencies(command_list_manager + ${catkin_EXPORTED_TARGETS}) + +@@ -152,9 +155,10 @@ add_library(sequence_capability + src/limits_container.cpp + src/cartesian_limit.cpp + src/cartesian_limits_aggregator.cpp ++ src/trajectory_functions.cpp + ) + target_link_libraries(sequence_capability +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + add_dependencies(sequence_capability + ${catkin_EXPORTED_TARGETS}) + diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml b/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml new file mode 100644 index 000000000..fbe7dd2b3 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml @@ -0,0 +1,89 @@ +package: + name: ros-noetic-pilz-industrial-motion-planner + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/pilz_industrial_motion_planner/1.1.13-2 + folder: ros-noetic-pilz-industrial-motion-planner/src/work + patches: + - patch/ros-noetic-pilz-industrial-motion-planner.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-code-coverage + - ros-noetic-joint-limits-interface + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-resources-prbt-moveit-config + - ros-noetic-moveit-resources-prbt-pg70-support + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pilz-industrial-motion-planner-testutils + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-limits-interface + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat b/recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-plotjuggler-ros/build_catkin.sh b/recipes/ros-noetic-plotjuggler-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-plotjuggler-ros/recipe.yaml b/recipes/ros-noetic-plotjuggler-ros/recipe.yaml new file mode 100644 index 000000000..b09d1d040 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-ros/recipe.yaml @@ -0,0 +1,81 @@ +package: + name: ros-noetic-plotjuggler-ros + version: 2.0.0 +source: + git_url: https://github.com/PlotJuggler/plotjuggler-ros-plugins-release.git + git_rev: release/noetic/plotjuggler_ros/2.0.0-1 + folder: ros-noetic-plotjuggler-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-plotjuggler + - ros-noetic-ros-type-introspection + - ros-noetic-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-plotjuggler + - ros-noetic-ros-type-introspection + - ros-noetic-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-polled-camera/bld_catkin.bat b/recipes/ros-noetic-polled-camera/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-polled-camera/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-polled-camera/build_catkin.sh b/recipes/ros-noetic-polled-camera/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-polled-camera/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-polled-camera/recipe.yaml b/recipes/ros-noetic-polled-camera/recipe.yaml new file mode 100644 index 000000000..3735d8eda --- /dev/null +++ b/recipes/ros-noetic-polled-camera/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-polled-camera + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/polled_camera/1.12.0-1 + folder: ros-noetic-polled-camera/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-position-controllers/bld_catkin.bat b/recipes/ros-noetic-position-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-position-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-position-controllers/build_catkin.sh b/recipes/ros-noetic-position-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-position-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-position-controllers/recipe.yaml b/recipes/ros-noetic-position-controllers/recipe.yaml new file mode 100644 index 000000000..937088741 --- /dev/null +++ b/recipes/ros-noetic-position-controllers/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-position-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/position_controllers/0.21.2-1 + folder: ros-noetic-position-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-realtime-tools/bld_catkin.bat b/recipes/ros-noetic-realtime-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-realtime-tools/build_catkin.sh b/recipes/ros-noetic-realtime-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch b/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch new file mode 100644 index 000000000..685a082a6 --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch @@ -0,0 +1,30 @@ +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/recipes/ros-noetic-realtime-tools/recipe.yaml b/recipes/ros-noetic-realtime-tools/recipe.yaml new file mode 100644 index 000000000..525f5795a --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-realtime-tools + version: 1.16.1 +source: + git_url: https://github.com/ros-gbp/realtime_tools-release.git + git_rev: release/noetic/realtime_tools/1.16.1-1 + folder: ros-noetic-realtime-tools/src/work + patches: + - patch/ros-noetic-realtime-tools.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rgbd-launch/bld_catkin.bat b/recipes/ros-noetic-rgbd-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rgbd-launch/build_catkin.sh b/recipes/ros-noetic-rgbd-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rgbd-launch/recipe.yaml b/recipes/ros-noetic-rgbd-launch/recipe.yaml new file mode 100644 index 000000000..7eb245ca4 --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rgbd-launch + version: 2.4.0 +source: + git_url: https://github.com/ros-gbp/rgbd_launch-release.git + git_rev: release/noetic/rgbd_launch/2.4.0-1 + folder: ros-noetic-rgbd-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-localization/bld_catkin.bat b/recipes/ros-noetic-robot-localization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-localization/build_catkin.sh b/recipes/ros-noetic-robot-localization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-localization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch new file mode 100644 index 000000000..42fea44f3 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch @@ -0,0 +1,14 @@ +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() + +-if(NOT MSVC) +- set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Werror") +-endif() + add_definitions(-DEIGEN_NO_DEBUG -DEIGEN_MPL2_ONLY) + + set(ROSLINT_CPP_OPTS "--filter=-build/c++11,-runtime/references") diff --git a/recipes/ros-noetic-robot-localization/recipe.yaml b/recipes/ros-noetic-robot-localization/recipe.yaml new file mode 100644 index 000000000..dfd60f76c --- /dev/null +++ b/recipes/ros-noetic-robot-localization/recipe.yaml @@ -0,0 +1,99 @@ +package: + name: ros-noetic-robot-localization + version: 2.7.5 +source: + git_url: https://github.com/cra-ros-pkg/robot_localization-release.git + git_rev: release/noetic/robot_localization/2.7.5-1 + folder: ros-noetic-robot-localization/src/work + patches: + - patch/ros-noetic-robot-localization.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - eigen + - geographiclib-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + run: + - eigen + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-state-publisher/build_catkin.sh b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-state-publisher/recipe.yaml b/recipes/ros-noetic-robot-state-publisher/recipe.yaml new file mode 100644 index 000000000..a41c44cf7 --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-robot-state-publisher + version: 1.15.2 +source: + git_url: https://github.com/ros-gbp/robot_state_publisher-release.git + git_rev: release/noetic/robot_state_publisher/1.15.2-1 + folder: ros-noetic-robot-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-kdl-parser + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - urdfdom_headers + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-kdl-parser + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostime + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot/bld_catkin.bat b/recipes/ros-noetic-robot/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot/build_catkin.sh b/recipes/ros-noetic-robot/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot/recipe.yaml b/recipes/ros-noetic-robot/recipe.yaml new file mode 100644 index 000000000..2201be1d3 --- /dev/null +++ b/recipes/ros-noetic-robot/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-robot + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/robot/1.5.0-1 + folder: ros-noetic-robot/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-diagnostics + - ros-noetic-executive-smach + - ros-noetic-filters + - ros-noetic-geometry + - ros-noetic-joint-state-publisher + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-ros-base + - ros-noetic-urdf + - ros-noetic-urdf-parser-plugin + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat b/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-babel-fish/build_catkin.sh b/recipes/ros-noetic-ros-babel-fish/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch b/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch new file mode 100644 index 000000000..f7ae0675d --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch @@ -0,0 +1,533 @@ +diff --git a/ros_babel_fish/CMakeLists.txt b/ros_babel_fish/CMakeLists.txt +index 45e26fe..d625e0f 100644 +--- a/ros_babel_fish/CMakeLists.txt ++++ b/ros_babel_fish/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.5.1) ++cmake_minimum_required(VERSION 3.10.2) + project(ros_babel_fish VERSION 0.9.1) + + # If the value doesn't fit, an exception is thrown in any case because that could result in unexpected behavior and can not be ignored lightly +@@ -9,9 +9,9 @@ if (WARN_ON_INCOMPATIBLE_TYPE) + endif () + + ## Compile as C++11, supported in ROS Kinetic and newer +-add_compile_options(-std=c++11) ++set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) + +-add_definitions(-Wall -Wextra) + + #set(CMAKE_BUILD_TYPE "Debug") + +@@ -20,6 +20,7 @@ add_definitions(-Wall -Wextra) + ## is used, also find other catkin packages + find_package(catkin REQUIRED COMPONENTS actionlib roscpp roslib std_msgs) + find_package(OpenSSL REQUIRED) ++find_package(Boost REQUIRED COMPONENTS filesystem) + + ################################### + ## catkin specific configuration ## +@@ -34,7 +35,7 @@ catkin_package( + INCLUDE_DIRS include + LIBRARIES ${PROJECT_NAME} + CATKIN_DEPENDS actionlib roscpp roslib +- DEPENDS OPENSSL ++ DEPENDS OPENSSL Boost + ) + + ########### +@@ -46,13 +47,13 @@ catkin_package( + include_directories( + include + ${catkin_INCLUDE_DIRS} ++ ${Boost_INCLUDE_DIRS} + ${OPENSSL_INCLUDE_DIR} + ) + + set(LIBRARIES + ${catkin_LIBRARIES} + OpenSSL::SSL +- stdc++fs + ) + + set(SOURCES +diff --git a/ros_babel_fish/examples/rosbag_frame_ids.cpp b/ros_babel_fish/examples/rosbag_frame_ids.cpp +index 1aae260..ab0f36e 100644 +--- a/ros_babel_fish/examples/rosbag_frame_ids.cpp ++++ b/ros_babel_fish/examples/rosbag_frame_ids.cpp +@@ -47,7 +47,7 @@ public: + + const uint8_t *buffer() const final + { +- if ( buffer_.empty() and size() > 0 ) ++ if ( buffer_.empty() && size() > 0 ) + { + buffer_.resize( size()); + ros::serialization::OStream stream( buffer_.data(), buffer_.size()); +diff --git a/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h b/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h +index 8714b5b..a7c1580 100644 +--- a/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h ++++ b/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h +@@ -179,20 +179,20 @@ private: + // Start publishers and subscribers + goal_pub_ = advertiseGoal( description, "goal", static_cast(pub_queue_size), + boost::bind( &ConnectionMonitor::goalConnectCallback, connection_monitor_, +- _1 ), ++ boost::placeholders::_1 ), + boost::bind( &ConnectionMonitor::goalDisconnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + queue ); + cancel_pub_ = + queue_advertise( "cancel", static_cast(pub_queue_size), + boost::bind( &ConnectionMonitor::cancelConnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + boost::bind( &ConnectionMonitor::cancelDisconnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + queue ); + +- manager_.registerSendGoalFunc( boost::bind( &ActionClientT::sendGoalFunc, this, _1 )); +- manager_.registerCancelFunc( boost::bind( &ActionClientT::sendCancelFunc, this, _1 )); ++ manager_.registerSendGoalFunc( boost::bind( &ActionClientT::sendGoalFunc, this, boost::placeholders::_1 )); ++ manager_.registerCancelFunc( boost::bind( &ActionClientT::sendCancelFunc, this, boost::placeholders::_1 )); + } + + ros::Publisher advertiseGoal( const ::ros_babel_fish::MessageDescription::ConstPtr &description, +@@ -235,7 +235,7 @@ private: + ops.datatype = ros::message_traits::datatype(); + ops.helper = ros::SubscriptionCallbackHelperPtr( + new ros::SubscriptionCallbackHelperT &>( +- boost::bind( fp, obj, _1 ) ++ boost::bind( fp, obj, boost::placeholders::_1 ) + ) + ); + return n_.subscribe( ops ); +diff --git a/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h b/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h +index 29e4db8..ed69bdf 100644 +--- a/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h ++++ b/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h +@@ -319,8 +319,8 @@ void SimpleActionClient<::ros_babel_fish::BabelFishAction_ > + cur_simple_state_ = SimpleGoalState::PENDING; + + // Send the goal to the ActionServer +- gh_ = ac_->sendGoal( goal, boost::bind( &SimpleActionClientT::handleTransition, this, _1 ), +- boost::bind( &SimpleActionClientT::handleFeedback, this, _1, _2 )); ++ gh_ = ac_->sendGoal( goal, boost::bind( &SimpleActionClientT::handleTransition, this, boost::placeholders::_1 ), ++ boost::bind( &SimpleActionClientT::handleFeedback, this, boost::placeholders::_1, boost::placeholders::_2 )); + } + + template +diff --git a/ros_babel_fish/include/ros_babel_fish/message.h b/ros_babel_fish/include/ros_babel_fish/message.h +index 278378c..50d36ec 100644 +--- a/ros_babel_fish/include/ros_babel_fish/message.h ++++ b/ros_babel_fish/include/ros_babel_fish/message.h +@@ -8,7 +8,16 @@ + #include "ros_babel_fish/exceptions/babel_fish_exception.h" + #include + ++#include + #include ++#include ++ ++#ifdef _WIN32 ++#include ++typedef SSIZE_T ssize_t; ++#else ++#include ++#endif + + namespace ros_babel_fish + { +@@ -64,7 +73,7 @@ public: + /*! + * Alias for _stream(). Removed in future release. + */ +- __attribute_deprecated__ const uint8_t *data() const { return _stream(); } ++ const uint8_t *data() const { return _stream(); } + + /*! + * @return Size of the message in bytes if serialized in ROS message binary format +@@ -74,7 +83,7 @@ public: + /*! + * Alias for _sizeInBytes(). Removed in future release. + */ +- __attribute_deprecated__ size_t size() const { return _sizeInBytes(); } ++ size_t size() const { return _sizeInBytes(); } + + /*! + * @return Whether or not the message is detached from the stream. If false, the message is not fully copied and still relies on the translated message. +diff --git a/ros_babel_fish/include/ros_babel_fish/messages/array_message.h b/ros_babel_fish/include/ros_babel_fish/messages/array_message.h +index 0dfd852..cc65e00 100644 +--- a/ros_babel_fish/include/ros_babel_fish/messages/array_message.h ++++ b/ros_babel_fish/include/ros_babel_fish/messages/array_message.h +@@ -117,7 +117,7 @@ public: + * Alias for assign + * Deprecated, will be removed in a future release + */ +- __attribute_deprecated__ void setItem( size_t index, ArgumentType value ) { assign( index, value ); } ++ void setItem( size_t index, ArgumentType value ) { assign( index, value ); } + + void push_back( ArgumentType value ) + { +@@ -139,7 +139,7 @@ public: + * Alias for push_back + * Deprecated, will be removed in a future release + */ +- __attribute_deprecated__ void addItem( ArgumentType value ) { push_back( value ); } ++ void addItem( ArgumentType value ) { push_back( value ); } + + size_t _sizeInBytes() const override + { +@@ -219,41 +219,6 @@ protected: + }; + + +-//! Specialization for Message +-template<> +-ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, +- const uint8_t *stream, bool ); +- +-template<> +-ArrayMessage::~ArrayMessage(); +- +-template<> +-Message &ArrayMessage::operator[]( size_t index ); +- +-template<> +-const Message &ArrayMessage::operator[]( size_t index ) const; +- +-template<> +-void ArrayMessage::assign( size_t index, Message *value ); +- +-template<> +-size_t ArrayMessage::_sizeInBytes() const; +- +-template<> +-size_t ArrayMessage::writeToStream( uint8_t *stream ) const; +- +-template<> +-inline void ArrayMessage::detachFromStream() +-{ +- /* So compiler won't complain. This specialization can not be from stream anyway. */ +-} +- +-template<> +-ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ); +- +-template<> +-Message *ArrayMessage::clone() const; +- + //! Specialization for CompoundMessage + class CompoundArrayMessage : public ArrayMessage + { +@@ -287,6 +252,108 @@ private: + MessageTemplate::ConstPtr msg_template_; + }; + ++ ++//! Specialization for Message ++template<> ++inline ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, const uint8_t *stream, ++ bool ) ++ : ArrayMessageBase( element_type, length, fixed_length, stream ), values_( 0 ), from_stream_( false ) { } ++ ++template<> ++inline ArrayMessage::~ArrayMessage() ++{ ++ for ( auto &entry : values_ ) ++ { ++ delete entry; ++ } ++ values_.clear(); ++} ++ ++template<> ++inline Message &ArrayMessage::operator[]( size_t index ) ++{ ++ return *values_[index]; ++} ++ ++template<> ++inline const Message &ArrayMessage::operator[]( size_t index ) const ++{ ++ return *values_[index]; ++} ++ ++template<> ++inline void ArrayMessage::assign( size_t index, Message *value ) ++{ ++ if ( index >= length_ ) ++ throw BabelFishException( "Index in setItem was out of bounds! Maybe you meant push_back?" ); ++ delete values_[index]; ++ values_[index] = value; ++} ++ ++template<> ++inline size_t ArrayMessage::_sizeInBytes() const ++{ ++ size_t result = (fixed_length_ ? 0 : 4); ++ for ( auto &value : values_ ) ++ { ++ result += value->_sizeInBytes(); ++ } ++ return result; ++} ++ ++template<> ++inline size_t ArrayMessage::writeToStream( uint8_t *stream ) const ++{ ++ size_t offset = 0; ++ if ( !fixed_length_ ) ++ { ++ *reinterpret_cast(stream) = length_; ++ offset = 4; ++ } ++ for ( auto &value : values_ ) ++ { ++ offset += value->writeToStream( stream + offset ); ++ } ++ return offset; ++} ++ ++template<> ++inline ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ) ++{ ++ if ( type() != other.type() || ++ (elementType() == MessageTypes::Compound && ++ as().elementDataType() != other.as().elementDataType())) ++ throw BabelFishException( "Can not assign incompatible ArrayMessage! They need to have exactly the same type!" ); ++ for ( auto &entry : values_ ) ++ { ++ delete entry; ++ } ++ values_.clear(); ++ values_.reserve( other._sizeInBytes()); ++ std::transform( other.values_.begin(), other.values_.end(), std::back_inserter( values_ ), ++ []( Message *m ) { return m->clone(); } ); ++ length_ = other.length_; ++ fixed_length_ = other.fixed_length_; ++ stream_ = other.stream_; ++ return *this; ++} ++ ++template<> ++inline Message *ArrayMessage::clone() const ++{ ++ auto result = new ArrayMessage( elementType(), length(), isFixedSize(), stream_ ); ++ result->values_.clear(); ++ std::transform( values_.begin(), values_.end(), std::back_inserter( result->values_ ), ++ []( Message *m ) { return m->clone(); } ); ++ return result; ++} ++ ++template<> ++inline void ArrayMessage::detachFromStream() ++{ ++ /* So compiler won't complain. This specialization can not be from stream anyway. */ ++} ++ + //! Specialization for Bool + template<> + bool ArrayMessage::operator[]( size_t index ); +diff --git a/ros_babel_fish/src/generation/description_provider.cpp b/ros_babel_fish/src/generation/description_provider.cpp +index 1f493bd..c3fd3c5 100644 +--- a/ros_babel_fish/src/generation/description_provider.cpp ++++ b/ros_babel_fish/src/generation/description_provider.cpp +@@ -160,8 +160,8 @@ MessageDescription::ConstPtr DescriptionProvider::getMessageDescriptionImpl( con + specs.push_back( buffer ); + + // Register all message dependencies +- bool registered[specs.size()]; +- std::fill_n( registered, specs.size(), false ); ++ std::vector registered(specs.size()); ++ std::fill_n(registered.begin(), specs.size(), false ); + bool new_registered = true; + while ( new_registered ) + { +@@ -451,8 +451,11 @@ DescriptionProvider::MessageSpec DescriptionProvider::createSpec( const std::str + std::regex_search( val.cbegin(), val.cend(), match, strip_comment_regex ); + val = match.str( 1 ); + } +- spec.constants.push_back( +- MessageSpec::Constant{ .type = constant_type, .name = name, .val = val } ); ++ MessageSpec::Constant constant; ++ constant.type = constant_type; ++ constant.name = name; ++ constant.val = val; ++ spec.constants.push_back(constant); + } + else if ( std::regex_search( first, last, match, field_regex ) && match.size() == 4 ) + { +diff --git a/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp b/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp +index d724b43..f338bf8 100644 +--- a/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp ++++ b/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp +@@ -5,11 +5,11 @@ + + #include + +-#include ++#include + #include + #include + +-namespace fs = std::experimental::filesystem; ++namespace fs = boost::filesystem; + + namespace ros_babel_fish + { +@@ -133,7 +133,7 @@ MessageDescription::ConstPtr IntegratedDescriptionProvider::getMessageDescriptio + } + + // Load message specification from file +- std::ifstream file_input( message_path ); ++ std::ifstream file_input( message_path.string() ); + file_input.seekg( 0, std::ios::end ); + std::string specification; + specification.resize( file_input.tellg()); +@@ -177,7 +177,7 @@ ServiceDescription::ConstPtr IntegratedDescriptionProvider::getServiceDescriptio + } + + // Load service specification from file +- std::ifstream file_input( service_path ); ++ std::ifstream file_input( service_path.string() ); + file_input.seekg( 0, std::ios::end ); + std::string spec; + spec.resize( file_input.tellg()); +diff --git a/ros_babel_fish/src/messages/array_message.cpp b/ros_babel_fish/src/messages/array_message.cpp +index c1c302b..f79e902 100644 +--- a/ros_babel_fish/src/messages/array_message.cpp ++++ b/ros_babel_fish/src/messages/array_message.cpp +@@ -11,100 +11,6 @@ namespace ros_babel_fish + //! ============== Message Specialization ============= + //! =================================================== + +-template<> +-ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, const uint8_t *stream, +- bool ) +- : ArrayMessageBase( element_type, length, fixed_length, stream ), values_( 0 ), from_stream_( false ) { } +- +-template<> +-ArrayMessage::~ArrayMessage() +-{ +- for ( auto &entry : values_ ) +- { +- delete entry; +- } +- values_.clear(); +-} +- +-template<> +-Message &ArrayMessage::operator[]( size_t index ) +-{ +- return *values_[index]; +-} +- +-template<> +-const Message &ArrayMessage::operator[]( size_t index ) const +-{ +- return *values_[index]; +-} +- +-template<> +-void ArrayMessage::assign( size_t index, Message *value ) +-{ +- if ( index >= length_ ) +- throw BabelFishException( "Index in setItem was out of bounds! Maybe you meant push_back?" ); +- delete values_[index]; +- values_[index] = value; +-} +- +-template<> +-size_t ArrayMessage::_sizeInBytes() const +-{ +- size_t result = (fixed_length_ ? 0 : 4); +- for ( auto &value : values_ ) +- { +- result += value->_sizeInBytes(); +- } +- return result; +-} +- +-template<> +-size_t ArrayMessage::writeToStream( uint8_t *stream ) const +-{ +- size_t offset = 0; +- if ( !fixed_length_ ) +- { +- *reinterpret_cast(stream) = length_; +- offset = 4; +- } +- for ( auto &value : values_ ) +- { +- offset += value->writeToStream( stream + offset ); +- } +- return offset; +-} +- +-template<> +-ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ) +-{ +- if ( type() != other.type() || +- (elementType() == MessageTypes::Compound && +- as().elementDataType() != other.as().elementDataType())) +- throw BabelFishException( "Can not assign incompatible ArrayMessage! They need to have exactly the same type!" ); +- for ( auto &entry : values_ ) +- { +- delete entry; +- } +- values_.clear(); +- values_.reserve( other._sizeInBytes()); +- std::transform( other.values_.begin(), other.values_.end(), std::back_inserter( values_ ), +- []( Message *m ) { return m->clone(); } ); +- length_ = other.length_; +- fixed_length_ = other.fixed_length_; +- stream_ = other.stream_; +- return *this; +-} +- +-template<> +-Message *ArrayMessage::clone() const +-{ +- auto result = new ArrayMessage( elementType(), length(), isFixedSize(), stream_ ); +- result->values_.clear(); +- std::transform( values_.begin(), values_.end(), std::back_inserter( result->values_ ), +- []( Message *m ) { return m->clone(); } ); +- return result; +-} +- + //! =================================================== + //! =============== Bool Specialization =============== + //! =================================================== +@@ -521,6 +427,12 @@ size_t ArrayMessage::writeToStream( uint8_t *stream ) const + return length; + } + ++// Explicit template instantiation; ++template class ArrayMessage; ++template class ArrayMessage; ++template class ArrayMessage; ++template class ArrayMessage; ++ + //! =================================================== + //! ================== CompoundArray ================== + //! =================================================== +diff --git a/ros_babel_fish/src/messages/value_message.cpp b/ros_babel_fish/src/messages/value_message.cpp +index 2f640e3..512fe34 100644 +--- a/ros_babel_fish/src/messages/value_message.cpp ++++ b/ros_babel_fish/src/messages/value_message.cpp +@@ -180,4 +180,11 @@ size_t ValueMessage::writeToStream( uint8_t *stream ) const + memcpy( stream, value_.data(), value_.length()); + return value_.length() + sizeof( uint32_t ); + } ++ ++// Explicit template instantiation; ++template class ValueMessage; ++template class ValueMessage; ++template class ValueMessage; ++template class ValueMessage; ++ + } diff --git a/recipes/ros-noetic-ros-babel-fish/recipe.yaml b/recipes/ros-noetic-ros-babel-fish/recipe.yaml new file mode 100644 index 000000000..caee9021e --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-ros-babel-fish + version: 0.9.3 +source: + git_url: https://github.com/StefanFabian/ros_babel_fish-release.git + git_rev: release/noetic/ros_babel_fish/0.9.3-1 + folder: ros-noetic-ros-babel-fish/src/work + patches: + - patch/ros-noetic-ros-babel-fish.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - openssl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-ros-babel-fish-test-msgs + - ros-noetic-rosapi + - ros-noetic-roscpp + - ros-noetic-roscpp-tutorials + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + run: + - openssl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-roscpp + - ros-noetic-roslib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-base/bld_catkin.bat b/recipes/ros-noetic-ros-base/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-base/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-base/build_catkin.sh b/recipes/ros-noetic-ros-base/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-base/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-base/recipe.yaml b/recipes/ros-noetic-ros-base/recipe.yaml new file mode 100644 index 000000000..83fd13459 --- /dev/null +++ b/recipes/ros-noetic-ros-base/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-ros-base + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/ros_base/1.5.0-1 + folder: ros-noetic-ros-base/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-bond-core + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet-core + - ros-noetic-ros-core + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-comm/bld_catkin.bat b/recipes/ros-noetic-ros-comm/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-comm/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-comm/build_catkin.sh b/recipes/ros-noetic-ros-comm/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-comm/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-comm/recipe.yaml b/recipes/ros-noetic-ros-comm/recipe.yaml new file mode 100644 index 000000000..d244b0876 --- /dev/null +++ b/recipes/ros-noetic-ros-comm/recipe.yaml @@ -0,0 +1,94 @@ +package: + name: ros-noetic-ros-comm + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/ros_comm/1.16.0-1 + folder: ros-noetic-ros-comm/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-control/bld_catkin.bat b/recipes/ros-noetic-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-control/build_catkin.sh b/recipes/ros-noetic-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-control/recipe.yaml b/recipes/ros-noetic-ros-control/recipe.yaml new file mode 100644 index 000000000..799925072 --- /dev/null +++ b/recipes/ros-noetic-ros-control/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-ros-control + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/ros_control/0.20.0-1 + folder: ros-noetic-ros-control/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-combined-robot-hw + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-realtime-tools + - ros-noetic-transmission-interface + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-controllers/bld_catkin.bat b/recipes/ros-noetic-ros-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-controllers/build_catkin.sh b/recipes/ros-noetic-ros-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-controllers/recipe.yaml b/recipes/ros-noetic-ros-controllers/recipe.yaml new file mode 100644 index 000000000..739a0f157 --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-ros-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/ros_controllers/0.21.2-1 + folder: ros-noetic-ros-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ackermann-steering-controller + - ros-noetic-diff-drive-controller + - ros-noetic-effort-controllers + - ros-noetic-force-torque-sensor-controller + - ros-noetic-forward-command-controller + - ros-noetic-gripper-action-controller + - ros-noetic-imu-sensor-controller + - ros-noetic-joint-state-controller + - ros-noetic-joint-trajectory-controller + - ros-noetic-position-controllers + - ros-noetic-velocity-controllers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-core/bld_catkin.bat b/recipes/ros-noetic-ros-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-core/build_catkin.sh b/recipes/ros-noetic-ros-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-core/recipe.yaml b/recipes/ros-noetic-ros-core/recipe.yaml new file mode 100644 index 000000000..ff2e898fe --- /dev/null +++ b/recipes/ros-noetic-ros-core/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-ros-core + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/ros_core/1.5.0-1 + folder: ros-noetic-ros-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-cmake-modules + - ros-noetic-common-msgs + - ros-noetic-gencpp + - ros-noetic-geneus + - ros-noetic-genlisp + - ros-noetic-genmsg + - ros-noetic-gennodejs + - ros-noetic-genpy + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-ros + - ros-noetic-ros-comm + - ros-noetic-rosbag-migration-rule + - ros-noetic-rosconsole + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp-core + - ros-noetic-rosgraph-msgs + - ros-noetic-roslisp + - ros-noetic-rospack + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosapi/bld_catkin.bat b/recipes/ros-noetic-rosapi/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosapi/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosapi/build_catkin.sh b/recipes/ros-noetic-rosapi/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosapi/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosapi/recipe.yaml b/recipes/ros-noetic-rosapi/recipe.yaml new file mode 100644 index 000000000..df7450d2e --- /dev/null +++ b/recipes/ros-noetic-rosapi/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rosapi + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosapi/0.11.17-1 + folder: ros-noetic-rosapi/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rosbridge-library + - ros-noetic-rosgraph + - ros-noetic-rosnode + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-library/bld_catkin.bat b/recipes/ros-noetic-rosbridge-library/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-library/build_catkin.sh b/recipes/ros-noetic-rosbridge-library/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-library/recipe.yaml b/recipes/ros-noetic-rosbridge-library/recipe.yaml new file mode 100644 index 000000000..cc354fef6 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-rosbridge-library + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_library/0.11.17-1 + folder: ros-noetic-rosbridge-library/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pillow + - pip + - sel(build_platform == target_platform): pkg-config + - pymongo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-rospy-tutorials + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-msgs + - ros-noetic-tf2-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - setuptools + run: + - pillow + - pymongo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostopic + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-server/bld_catkin.bat b/recipes/ros-noetic-rosbridge-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-server/build_catkin.sh b/recipes/ros-noetic-rosbridge-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-server/recipe.yaml b/recipes/ros-noetic-rosbridge-server/recipe.yaml new file mode 100644 index 000000000..74ffee9e3 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosbridge-server + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_server/0.11.17-1 + folder: ros-noetic-rosbridge-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + - setuptools + run: + - autobahn + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosapi + - ros-noetic-rosauth + - ros-noetic-rosbridge-library + - ros-noetic-rosbridge-msgs + - ros-noetic-rospy + - tornado + - twisted + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat b/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-suite/build_catkin.sh b/recipes/ros-noetic-rosbridge-suite/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-suite/recipe.yaml b/recipes/ros-noetic-rosbridge-suite/recipe.yaml new file mode 100644 index 000000000..f8482ffca --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-rosbridge-suite + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_suite/0.11.17-1 + folder: ros-noetic-rosbridge-suite/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosapi + - ros-noetic-rosbridge-library + - ros-noetic-rosbridge-server + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosnode/bld_catkin.bat b/recipes/ros-noetic-rosnode/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosnode/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosnode/build_catkin.sh b/recipes/ros-noetic-rosnode/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosnode/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosnode/recipe.yaml b/recipes/ros-noetic-rosnode/recipe.yaml new file mode 100644 index 000000000..d606323b2 --- /dev/null +++ b/recipes/ros-noetic-rosnode/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rosnode + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosnode/1.16.0-1 + folder: ros-noetic-rosnode/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosgraph + - ros-noetic-rostest + - ros-noetic-rostopic + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosgraph + - ros-noetic-rostopic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosservice/bld_catkin.bat b/recipes/ros-noetic-rosservice/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosservice/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosservice/build_catkin.sh b/recipes/ros-noetic-rosservice/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosservice/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosservice/recipe.yaml b/recipes/ros-noetic-rosservice/recipe.yaml new file mode 100644 index 000000000..c92963f04 --- /dev/null +++ b/recipes/ros-noetic-rosservice/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosservice + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosservice/1.16.0-1 + folder: ros-noetic-rosservice/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genpy + - ros-noetic-rosgraph + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genpy + - ros-noetic-rosgraph + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roswtf/bld_catkin.bat b/recipes/ros-noetic-roswtf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roswtf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roswtf/build_catkin.sh b/recipes/ros-noetic-roswtf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roswtf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roswtf/recipe.yaml b/recipes/ros-noetic-roswtf/recipe.yaml new file mode 100644 index 000000000..a65c408b6 --- /dev/null +++ b/recipes/ros-noetic-roswtf/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-roswtf + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/roswtf/1.16.0-1 + folder: ros-noetic-roswtf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-rosbag + - ros-noetic-roslang + - ros-noetic-rostest + - ros-noetic-std-srvs + run: + - paramiko + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbuild + - ros-noetic-rosgraph + - ros-noetic-roslaunch + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rosservice + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rotate-recovery/bld_catkin.bat b/recipes/ros-noetic-rotate-recovery/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rotate-recovery/build_catkin.sh b/recipes/ros-noetic-rotate-recovery/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rotate-recovery/recipe.yaml b/recipes/ros-noetic-rotate-recovery/recipe.yaml new file mode 100644 index 000000000..d290cdef7 --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rotate-recovery + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/rotate_recovery/1.17.3-1 + folder: ros-noetic-rotate-recovery/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-action/bld_catkin.bat b/recipes/ros-noetic-rqt-action/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-action/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-action/build_catkin.sh b/recipes/ros-noetic-rqt-action/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-action/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-action/recipe.yaml b/recipes/ros-noetic-rqt-action/recipe.yaml new file mode 100644 index 000000000..68a150cbf --- /dev/null +++ b/recipes/ros-noetic-rqt-action/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-action + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_action-release.git + git_rev: release/noetic/rqt_action/0.4.9-1 + folder: ros-noetic-rqt-action/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rospy + - ros-noetic-rqt-msg + - ros-noetic-rqt-py-common + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-rqt-msg + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml b/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml new file mode 100644 index 000000000..6a0bcce2a --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-bag-plugins + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/rqt_bag-release.git + git_rev: release/noetic/rqt_bag_plugins/0.5.1-1 + folder: ros-noetic-rqt-bag-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pillow + - pycairo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rqt-bag + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-plot + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-bag/bld_catkin.bat b/recipes/ros-noetic-rqt-bag/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-bag/build_catkin.sh b/recipes/ros-noetic-rqt-bag/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-bag/recipe.yaml b/recipes/ros-noetic-rqt-bag/recipe.yaml new file mode 100644 index 000000000..b1206f130 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-bag + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/rqt_bag-release.git + git_rev: release/noetic/rqt_bag/0.5.1-1 + folder: ros-noetic-rqt-bag/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosbag + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-common-plugins/recipe.yaml b/recipes/ros-noetic-rqt-common-plugins/recipe.yaml new file mode 100644 index 000000000..2efa5024f --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rqt-common-plugins + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_common_plugins-release.git + git_rev: release/noetic/rqt_common_plugins/0.4.9-1 + folder: ros-noetic-rqt-common-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rqt-action + - ros-noetic-rqt-bag + - ros-noetic-rqt-bag-plugins + - ros-noetic-rqt-console + - ros-noetic-rqt-dep + - ros-noetic-rqt-graph + - ros-noetic-rqt-image-view + - ros-noetic-rqt-launch + - ros-noetic-rqt-logger-level + - ros-noetic-rqt-msg + - ros-noetic-rqt-plot + - ros-noetic-rqt-publisher + - ros-noetic-rqt-py-common + - ros-noetic-rqt-py-console + - ros-noetic-rqt-reconfigure + - ros-noetic-rqt-service-caller + - ros-noetic-rqt-shell + - ros-noetic-rqt-srv + - ros-noetic-rqt-top + - ros-noetic-rqt-topic + - ros-noetic-rqt-web + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-console/bld_catkin.bat b/recipes/ros-noetic-rqt-console/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-console/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-console/build_catkin.sh b/recipes/ros-noetic-rqt-console/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-console/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-console/recipe.yaml b/recipes/ros-noetic-rqt-console/recipe.yaml new file mode 100644 index 000000000..7ae3b4b91 --- /dev/null +++ b/recipes/ros-noetic-rqt-console/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-console + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_console-release.git + git_rev: release/noetic/rqt_console/0.4.12-1 + folder: ros-noetic-rqt-console/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-logger-level + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat b/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh b/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-controller-manager/recipe.yaml b/recipes/ros-noetic-rqt-controller-manager/recipe.yaml new file mode 100644 index 000000000..e30816282 --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-controller-manager + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/rqt_controller_manager/0.20.0-1 + folder: ros-noetic-rqt-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-manager-msgs + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-dep/bld_catkin.bat b/recipes/ros-noetic-rqt-dep/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-dep/build_catkin.sh b/recipes/ros-noetic-rqt-dep/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-dep/recipe.yaml b/recipes/ros-noetic-rqt-dep/recipe.yaml new file mode 100644 index 000000000..40371e4ae --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-dep + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_dep-release.git + git_rev: release/noetic/rqt_dep/0.4.12-1 + folder: ros-noetic-rqt-dep/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rqt-graph + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-ez-publisher/bld_catkin.bat b/recipes/ros-noetic-rqt-ez-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh b/recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-ez-publisher/recipe.yaml b/recipes/ros-noetic-rqt-ez-publisher/recipe.yaml new file mode 100644 index 000000000..697104579 --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-publisher/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-rqt-ez-publisher + version: 0.6.1 +source: + git_url: https://github.com/OTL/rqt_ez_publisher-release.git + git_rev: release/noetic/rqt_ez_publisher/0.6.1-1 + folder: ros-noetic-rqt-ez-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - ros-noetic-tf2-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-graph/bld_catkin.bat b/recipes/ros-noetic-rqt-graph/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-graph/build_catkin.sh b/recipes/ros-noetic-rqt-graph/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-graph/recipe.yaml b/recipes/ros-noetic-rqt-graph/recipe.yaml new file mode 100644 index 000000000..efa9b2dbb --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-graph + version: 0.4.14 +source: + git_url: https://github.com/ros-gbp/rqt_graph-release.git + git_rev: release/noetic/rqt_graph/0.4.14-1 + folder: ros-noetic-rqt-graph/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-image-view/bld_catkin.bat b/recipes/ros-noetic-rqt-image-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-image-view/build_catkin.sh b/recipes/ros-noetic-rqt-image-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch b/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch new file mode 100644 index 000000000..0b8e23b62 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ba4ec83..ea96ab1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,10 +2,9 @@ cmake_minimum_required(VERSION 3.0.2) + + project(rqt_image_view) + +-add_compile_options(-std=c++11) +- + # Load catkin and all dependencies required for this package + find_package(catkin REQUIRED COMPONENTS rqt_gui rqt_gui_cpp image_transport sensor_msgs geometry_msgs cv_bridge) ++find_package(OpenCV) + + if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") + find_package(Qt5Widgets REQUIRED) +@@ -60,7 +59,7 @@ set(CMAKE_CURRENT_BINARY_DIR "${_cmake_current_binary_dir}") + + include_directories(${rqt_image_view_INCLUDE_DIRECTORIES} ${catkin_INCLUDE_DIRS}) + add_library(${PROJECT_NAME} ${rqt_image_view_SRCS} ${rqt_image_view_MOCS} ${rqt_image_view_UIS_H}) +-target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) ++target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) + if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") + target_link_libraries(${PROJECT_NAME} Qt5::Widgets) + else() diff --git a/recipes/ros-noetic-rqt-image-view/recipe.yaml b/recipes/ros-noetic-rqt-image-view/recipe.yaml new file mode 100644 index 000000000..c0f148789 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/recipe.yaml @@ -0,0 +1,79 @@ +package: + name: ros-noetic-rqt-image-view + version: 0.4.17 +source: + git_url: https://github.com/ros-gbp/rqt_image_view-release.git + git_rev: release/noetic/rqt_image_view/0.4.17-1 + folder: ros-noetic-rqt-image-view/src/work + patches: + - patch/ros-noetic-rqt-image-view.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-sensor-msgs + - setuptools + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-launch/bld_catkin.bat b/recipes/ros-noetic-rqt-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-launch/build_catkin.sh b/recipes/ros-noetic-rqt-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-launch/recipe.yaml b/recipes/ros-noetic-rqt-launch/recipe.yaml new file mode 100644 index 000000000..186c4ea6b --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-rqt-launch + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_launch-release.git + git_rev: release/noetic/rqt_launch/0.4.9-1 + folder: ros-noetic-rqt-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-python-qt-binding + - ros-noetic-roslaunch + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslaunch + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat b/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-logger-level/build_catkin.sh b/recipes/ros-noetic-rqt-logger-level/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-logger-level/recipe.yaml b/recipes/ros-noetic-rqt-logger-level/recipe.yaml new file mode 100644 index 000000000..eacabd291 --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-logger-level + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_logger_level-release.git + git_rev: release/noetic/rqt_logger_level/0.4.12-1 + folder: ros-noetic-rqt-logger-level/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-moveit/bld_catkin.bat b/recipes/ros-noetic-rqt-moveit/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-moveit/build_catkin.sh b/recipes/ros-noetic-rqt-moveit/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-moveit/recipe.yaml b/recipes/ros-noetic-rqt-moveit/recipe.yaml new file mode 100644 index 000000000..54e185048 --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-moveit + version: 0.5.11 +source: + git_url: https://github.com/ros-gbp/rqt_moveit-release.git + git_rev: release/noetic/rqt_moveit/0.5.11-1 + folder: ros-noetic-rqt-moveit/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-rqt-topic + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-msg/bld_catkin.bat b/recipes/ros-noetic-rqt-msg/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-msg/build_catkin.sh b/recipes/ros-noetic-rqt-msg/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-msg/recipe.yaml b/recipes/ros-noetic-rqt-msg/recipe.yaml new file mode 100644 index 000000000..424771dd9 --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-msg + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_msg-release.git + git_rev: release/noetic/rqt_msg/0.4.10-1 + folder: ros-noetic-rqt-msg/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat b/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-nav-view/build_catkin.sh b/recipes/ros-noetic-rqt-nav-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-nav-view/recipe.yaml b/recipes/ros-noetic-rqt-nav-view/recipe.yaml new file mode 100644 index 000000000..dd2061516 --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-nav-view + version: 0.5.7 +source: + git_url: https://github.com/ros-gbp/rqt_nav_view-release.git + git_rev: release/noetic/rqt_nav_view/0.5.7-1 + folder: ros-noetic-rqt-nav-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-plot/bld_catkin.bat b/recipes/ros-noetic-rqt-plot/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-plot/build_catkin.sh b/recipes/ros-noetic-rqt-plot/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-plot/recipe.yaml b/recipes/ros-noetic-rqt-plot/recipe.yaml new file mode 100644 index 000000000..1a2514a99 --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-plot + version: 0.4.13 +source: + git_url: https://github.com/ros-gbp/rqt_plot-release.git + git_rev: release/noetic/rqt_plot/0.4.13-2 + folder: ros-noetic-rqt-plot/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - matplotlib-base + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui-py-common + - ros-noetic-qwt-dependency + - ros-noetic-rosgraph + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-std-msgs + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat b/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-pose-view/build_catkin.sh b/recipes/ros-noetic-rqt-pose-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-pose-view/recipe.yaml b/recipes/ros-noetic-rqt-pose-view/recipe.yaml new file mode 100644 index 000000000..00960b358 --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-rqt-pose-view + version: 0.5.11 +source: + git_url: https://github.com/ros-gbp/rqt_pose_view-release.git + git_rev: release/noetic/rqt_pose_view/0.5.11-1 + folder: ros-noetic-rqt-pose-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - pyopengl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-gl-dependency + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-publisher/bld_catkin.bat b/recipes/ros-noetic-rqt-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-publisher/build_catkin.sh b/recipes/ros-noetic-rqt-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-publisher/recipe.yaml b/recipes/ros-noetic-rqt-publisher/recipe.yaml new file mode 100644 index 000000000..d3e60b667 --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-publisher + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_publisher-release.git + git_rev: release/noetic/rqt_publisher/0.4.10-1 + folder: ros-noetic-rqt-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui-py-common + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-py-common/bld_catkin.bat b/recipes/ros-noetic-rqt-py-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-py-common/build_catkin.sh b/recipes/ros-noetic-rqt-py-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-py-common/recipe.yaml b/recipes/ros-noetic-rqt-py-common/recipe.yaml new file mode 100644 index 000000000..533f726e0 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-py-common + version: 0.5.3 +source: + git_url: https://github.com/ros-gbp/rqt-release.git + git_rev: release/noetic/rqt_py_common/0.5.3-1 + folder: ros-noetic-rqt-py-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-genmsg + - ros-noetic-genpy + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-genpy + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostopic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat b/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh b/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-reconfigure/recipe.yaml b/recipes/ros-noetic-rqt-reconfigure/recipe.yaml new file mode 100644 index 000000000..7766427bd --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-reconfigure + version: 0.5.5 +source: + git_url: https://github.com/ros-gbp/rqt_reconfigure-release.git + git_rev: release/noetic/rqt_reconfigure/0.5.5-1 + folder: ros-noetic-rqt-reconfigure/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + - ros-noetic-rostest + - setuptools + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh b/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml b/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml new file mode 100644 index 000000000..0eca81d40 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-robot-dashboard + version: 0.5.8 +source: + git_url: https://github.com/ros-gbp/rqt_robot_dashboard-release.git + git_rev: release/noetic/rqt_robot_dashboard/0.5.8-1 + folder: ros-noetic-rqt-robot-dashboard/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-robot-monitor + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh b/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml b/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml new file mode 100644 index 000000000..384544115 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-robot-monitor + version: 0.5.15 +source: + git_url: https://github.com/ros-gbp/rqt_robot_monitor-release.git + git_rev: release/noetic/rqt_robot_monitor/0.5.15-1 + folder: ros-noetic-rqt-robot-monitor/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rospy + - ros-noetic-rqt-bag + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml b/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml new file mode 100644 index 000000000..996d74699 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-robot-plugins + version: 0.5.8 +source: + git_url: https://github.com/ros-gbp/rqt_robot_plugins-release.git + git_rev: release/noetic/rqt_robot_plugins/0.5.8-1 + folder: ros-noetic-rqt-robot-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rqt-moveit + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-pose-view + - ros-noetic-rqt-robot-dashboard + - ros-noetic-rqt-robot-monitor + - ros-noetic-rqt-robot-steering + - ros-noetic-rqt-runtime-monitor + - ros-noetic-rqt-rviz + - ros-noetic-rqt-tf-tree + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rqt-moveit + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-pose-view + - ros-noetic-rqt-robot-dashboard + - ros-noetic-rqt-robot-monitor + - ros-noetic-rqt-robot-steering + - ros-noetic-rqt-runtime-monitor + - ros-noetic-rqt-rviz + - ros-noetic-rqt-tf-tree + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh b/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-steering/recipe.yaml b/recipes/ros-noetic-rqt-robot-steering/recipe.yaml new file mode 100644 index 000000000..3dd7f97d0 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-robot-steering + version: 0.5.12 +source: + git_url: https://github.com/ros-gbp/rqt_robot_steering-release.git + git_rev: release/noetic/rqt_robot_steering/0.5.12-1 + folder: ros-noetic-rqt-robot-steering/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-python-qt-binding + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-rviz/bld_catkin.bat b/recipes/ros-noetic-rqt-rviz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-rviz/build_catkin.sh b/recipes/ros-noetic-rqt-rviz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-rviz/recipe.yaml b/recipes/ros-noetic-rqt-rviz/recipe.yaml new file mode 100644 index 000000000..aed3eb97a --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-rqt-rviz + version: 0.7.0 +source: + git_url: https://github.com/ros-gbp/rqt_rviz-release.git + git_rev: release/noetic/rqt_rviz/0.7.0-1 + folder: ros-noetic-rqt-rviz/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-pluginlib + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat b/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-service-caller/build_catkin.sh b/recipes/ros-noetic-rqt-service-caller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-service-caller/recipe.yaml b/recipes/ros-noetic-rqt-service-caller/recipe.yaml new file mode 100644 index 000000000..06929f85b --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-service-caller + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_service_caller-release.git + git_rev: release/noetic/rqt_service_caller/0.4.10-1 + folder: ros-noetic-rqt-service-caller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosservice + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-srv/bld_catkin.bat b/recipes/ros-noetic-rqt-srv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-srv/build_catkin.sh b/recipes/ros-noetic-rqt-srv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-srv/recipe.yaml b/recipes/ros-noetic-rqt-srv/recipe.yaml new file mode 100644 index 000000000..6b0ebc83d --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-srv + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_srv-release.git + git_rev: release/noetic/rqt_srv/0.4.9-1 + folder: ros-noetic-rqt-srv/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-msg + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-msg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat b/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh b/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-tf-tree/recipe.yaml b/recipes/ros-noetic-rqt-tf-tree/recipe.yaml new file mode 100644 index 000000000..3df3c3130 --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-tf-tree + version: 0.6.4 +source: + git_url: https://github.com/ros-gbp/rqt_tf_tree-release.git + git_rev: release/noetic/rqt_tf_tree/0.6.4-1 + folder: ros-noetic-rqt-tf-tree/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-rospy + - ros-noetic-rqt-graph + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-topic/bld_catkin.bat b/recipes/ros-noetic-rqt-topic/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-topic/build_catkin.sh b/recipes/ros-noetic-rqt-topic/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-topic/recipe.yaml b/recipes/ros-noetic-rqt-topic/recipe.yaml new file mode 100644 index 000000000..5579479cb --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-topic + version: 0.4.13 +source: + git_url: https://github.com/ros-gbp/rqt_topic-release.git + git_rev: release/noetic/rqt_topic/0.4.13-1 + folder: ros-noetic-rqt-topic/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-std-msgs + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat b/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh b/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch b/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch new file mode 100644 index 000000000..22a979a4d --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch @@ -0,0 +1,23 @@ +diff --git a/rviz_imu_plugin/CMakeLists.txt b/rviz_imu_plugin/CMakeLists.txt +index 3c58331..d2a5189 100644 +--- a/rviz_imu_plugin/CMakeLists.txt ++++ b/rviz_imu_plugin/CMakeLists.txt +@@ -6,6 +6,18 @@ find_package(catkin REQUIRED COMPONENTS roscpp rviz) + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This plugin includes Qt widgets, so we must include Qt. + ## We'll use the version that rviz used so they are compatible. + if(rviz_QT_VERSION VERSION_LESS "5") diff --git a/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml b/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml new file mode 100644 index 000000000..79fb03381 --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rviz-imu-plugin + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/rviz_imu_plugin/1.2.6-1 + folder: ros-noetic-rviz-imu-plugin/src/work + patches: + - patch/ros-noetic-rviz-imu-plugin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat b/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh b/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch b/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch new file mode 100644 index 000000000..13251dd02 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch @@ -0,0 +1,23 @@ +diff --git a/rviz_plugin_tutorials/CMakeLists.txt b/rviz_plugin_tutorials/CMakeLists.txt +index 01ff2738..1b4b4079 100644 +--- a/rviz_plugin_tutorials/CMakeLists.txt ++++ b/rviz_plugin_tutorials/CMakeLists.txt +@@ -10,6 +10,18 @@ catkin_package() + include_directories(${catkin_INCLUDE_DIRS}) + link_directories(${catkin_LIBRARY_DIRS}) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml b/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml new file mode 100644 index 000000000..c73ca7425 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-rviz-plugin-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/rviz_plugin_tutorials/0.11.0-1 + folder: ros-noetic-rviz-plugin-tutorials/src/work + patches: + - patch/ros-noetic-rviz-plugin-tutorials.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat b/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh b/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml b/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml new file mode 100644 index 000000000..e499d9d6d --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rviz-python-tutorial + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/rviz_python_tutorial/0.11.0-1 + folder: ros-noetic-rviz-python-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rviz + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat b/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh b/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-visual-tools/recipe.yaml b/recipes/ros-noetic-rviz-visual-tools/recipe.yaml new file mode 100644 index 000000000..35ff6f993 --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/recipe.yaml @@ -0,0 +1,99 @@ +package: + name: ros-noetic-rviz-visual-tools + version: 3.9.3 +source: + git_url: https://github.com/PickNikRobotics/rviz_visual_tools-release.git + git_rev: release/noetic/rviz_visual_tools/3.9.3-1 + folder: ros-noetic-rviz-visual-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - ogre + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz/bld_catkin.bat b/recipes/ros-noetic-rviz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz/build_catkin.sh b/recipes/ros-noetic-rviz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch new file mode 100644 index 000000000..e96482872 --- /dev/null +++ b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch @@ -0,0 +1,241 @@ +diff --git a/src/rviz/default_plugin/camera_display.cpp b/src/rviz/default_plugin/camera_display.cpp +index 49abcfea8..af47fef99 100644 +--- a/src/rviz/default_plugin/camera_display.cpp ++++ b/src/rviz/default_plugin/camera_display.cpp +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -102,6 +103,8 @@ CameraDisplay::CameraDisplay() + SLOT(forceRender())); + zoom_property_->setMin(0.00001); + zoom_property_->setMax(100000); ++ ++ has_run_once_ = false; + } + + CameraDisplay::~CameraDisplay() +@@ -127,8 +130,15 @@ void CameraDisplay::onInitialize() + { + ImageDisplayBase::onInitialize(); + +- bg_scene_node_ = scene_node_->createChildSceneNode(); +- fg_scene_node_ = scene_node_->createChildSceneNode(); ++ { ++ static uint32_t count = 0; ++ std::stringstream ss; ++ ss << "CameraDisplay" << count++; ++ camera_scene_manager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC, ss.str()); ++ } ++ ++ 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() + void CameraDisplay::preRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) + { + QString image_position = image_position_property_->getString(); +- bg_scene_node_->setVisible(caminfo_ok_ && (image_position == BACKGROUND || image_position == BOTH)); +- fg_scene_node_->setVisible(caminfo_ok_ && (image_position == OVERLAY || image_position == BOTH)); ++ ++ if (has_run_once_) ++ { ++ fg_scene_node_->setVisible(caminfo_ok_ && (image_position == OVERLAY || image_position == BOTH)); ++ bg_scene_node_->setVisible(caminfo_ok_ && (image_position == BACKGROUND || image_position == BOTH)); ++ } ++ else ++ { ++ has_run_once_ = true; ++ } + + // 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 +--- 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 + ROSImageTexture texture_; + RenderPanel* render_panel_; + ++ Ogre::SceneManager* camera_scene_manager_; ++ + private Q_SLOTS: + void forceRender(); + void updateAlpha(); +@@ -135,6 +137,8 @@ private Q_SLOTS: + bool force_render_; + + uint32_t vis_bit_; ++ ++ bool has_run_once_; + }; + + } // namespace rviz +diff --git a/src/rviz/default_plugin/image_display.cpp b/src/rviz/default_plugin/image_display.cpp +index 3b5d50cea..e424ea68a 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())); + + got_float_image_ = false; ++ has_run_once_ = false; + } + + void ImageDisplay::onInitialize() +@@ -114,12 +115,13 @@ void ImageDisplay::onInitialize() + screen_rect_->setBoundingBox(aabInf); + setMaterial(*screen_rect_, material_); + img_scene_node_->attachObject(screen_rect_); ++ img_scene_node_->setVisible(false); + } + + render_panel_ = new RenderPanel(); ++ 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() + { + if (initialized()) + { ++ render_panel_->getRenderWindow()->removeListener(this); ++ + delete render_panel_; + delete screen_rect_; + removeAndDestroyChildNode(img_scene_node_->getParentSceneNode(), img_scene_node_); + } + } + ++void ImageDisplay::preRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) ++{ ++ if (has_run_once_) ++ { ++ img_scene_node_->setVisible(true); ++ } ++ else ++ { ++ has_run_once_ = true; ++ img_scene_node_->setVisible(false); ++ } ++} ++ ++void ImageDisplay::postRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) ++{ ++ img_scene_node_->setVisible(false); ++} ++ + void ImageDisplay::onEnable() + { + ImageDisplayBase::subscribe(); +diff --git a/src/rviz/default_plugin/image_display.h b/src/rviz/default_plugin/image_display.h +index 88492c191..e5b1335bf 100644 +--- a/src/rviz/default_plugin/image_display.h ++++ b/src/rviz/default_plugin/image_display.h +@@ -59,7 +59,7 @@ namespace rviz + * \class ImageDisplay + * + */ +-class ImageDisplay : public ImageDisplayBase ++class ImageDisplay : public ImageDisplayBase, public Ogre::RenderTargetListener + { + Q_OBJECT + public: +@@ -71,6 +71,10 @@ class ImageDisplay : public ImageDisplayBase + void update(float wall_dt, float ros_dt) override; + void reset() override; + ++ // Overrides from Ogre::RenderTargetListener ++ void preRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) override; ++ void postRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) override; ++ + public Q_SLOTS: + virtual void updateNormalizeOptions(); + +@@ -98,6 +102,8 @@ public Q_SLOTS: + FloatProperty* max_property_; + IntProperty* median_buffer_size_property_; + bool got_float_image_; ++ ++ bool has_run_once_; + }; + + } // namespace rviz +diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp +index 14d83396c..d1a500d30 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, + // Created a non-stereo window. Discard it and try again (below) + // without the stereo parameter. + ogre_root_->detachRenderTarget(window); +- window->destroy(); ++ ogre_root_->destroyRenderTarget(window); + window = nullptr; + stream << "x"; + is_stereo = false; +@@ -480,6 +480,7 @@ Ogre::RenderWindow* RenderSystem::tryMakeRenderWindow(const std::string& name, + if (x_baddrawable_error) + { + ogre_root_->detachRenderTarget(window); ++ ogre_root_->destroyRenderTarget(window); + window = nullptr; + x_baddrawable_error = false; + } +diff --git a/src/rviz/render_panel.cpp b/src/rviz/render_panel.cpp +index 5532741d4..10fc63314 100644 +--- a/src/rviz/render_panel.cpp ++++ b/src/rviz/render_panel.cpp +@@ -35,6 +35,7 @@ + + #include + #include ++#include + + #include + #include +@@ -100,6 +101,12 @@ void RenderPanel::leaveEvent(QEvent* /*event*/) + } + } + ++void RenderPanel::resizeEvent(QResizeEvent* event) ++{ ++ QWidget::resizeEvent(event); ++ render_window_->windowMovedOrResized(); ++} ++ + void RenderPanel::onRenderWindowMouseEvents(QMouseEvent* event) + { + int last_x = mouse_x_; +diff --git a/src/rviz/render_panel.h b/src/rviz/render_panel.h +index 2ce29c6f8..e1ef904e9 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 + /// Called when any mouse event happens inside the render window + void onRenderWindowMouseEvents(QMouseEvent* event); + ++ void resizeEvent(QResizeEvent* event) override; ++ + // QWidget mouse events all get sent to onRenderWindowMouseEvents(). + // QMouseEvent.type() distinguishes them later. + void mouseMoveEvent(QMouseEvent* event) override + diff --git a/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch new file mode 100644 index 000000000..ccf0fe54a --- /dev/null +++ b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch @@ -0,0 +1,126 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d623dd4e..e4490137 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,11 @@ + cmake_minimum_required(VERSION 3.0.2) + project(rviz) + ++## Restrict Windows header namespace usage ++if(WIN32) ++ add_definitions(-DNOGDI) ++endif() ++ + if (POLICY CMP0042) + cmake_policy(SET CMP0042 NEW) + endif() +@@ -98,10 +103,10 @@ if(APPLE) + endif() + + # Prefer newer vender-specific OpenGL library +-if (POLICY CMP0072) +- cmake_policy(SET CMP0072 NEW) +-endif() +-find_package(OpenGL REQUIRED) ++# if (POLICY CMP0072) ++# cmake_policy(SET CMP0072 NEW) ++# endif() ++# find_package(OpenGL REQUIRED) + + set(CMAKE_AUTOMOC ON) + +@@ -214,7 +219,7 @@ catkin_package( + + #catkin_lint: ignore_once external_directory + include_directories(src ${EXPORT_HEADER_DIR}) +-include_directories(SYSTEM ++include_directories( + ${EIGEN3_INCLUDE_DIRS} + ${OGRE_INCLUDE_DIRS} + ${OPENGL_INCLUDE_DIR} +diff --git a/ogre_media/fonts/ogre1.10.fontdef b/ogre_media/fonts/ogre1.10.fontdef +index 4b3c5b82..e714db0f 100644 +--- a/ogre_media/fonts/ogre1.10.fontdef ++++ b/ogre_media/fonts/ogre1.10.fontdef +@@ -1,3 +1,12 @@ ++Liberation Sans ++{ ++ type truetype ++ source liberation-sans/LiberationSans-Regular.ttf ++ size 18 ++ resolution 96 ++} ++ ++# Ogre >= 1.10 has changed the format + font "Liberation Sans" + { + type truetype +diff --git a/src/python_bindings/sip/CMakeLists.txt b/src/python_bindings/sip/CMakeLists.txt +index efbb497b..d2f4eb9b 100644 +--- a/src/python_bindings/sip/CMakeLists.txt ++++ b/src/python_bindings/sip/CMakeLists.txt +@@ -48,14 +48,21 @@ set(rviz_sip_INCLUDE_DIRS + ${OGRE_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} + ) ++ ++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/) + if (MSVC) + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} /LIBPATH:\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\") + else() + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} -Wl,-rpath,\\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\\") + endif() + ++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) + 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() + 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() + endif() + #catkin_lint: ignore_once external_file + install(FILES ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz/${rviz_sip_LIBRARY_FILE} +diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp +index 4005f982..c0441de8 100644 +--- a/src/rviz/ogre_helpers/render_system.cpp ++++ b/src/rviz/ogre_helpers/render_system.cpp +@@ -159,9 +159,10 @@ void RenderSystem::setupDummyWindowId() + + void RenderSystem::loadOgrePlugins() + { +- std::string plugin_prefix = get_ogre_plugin_path() + "/"; +-#ifdef Q_OS_MAC +- plugin_prefix += "lib"; ++#ifdef _WIN32 ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "\\Library\\bin\\"; ++#else ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "/lib/OGRE/"; + #endif + ogre_root_->loadPlugin(plugin_prefix + "RenderSystem_GL"); + ogre_root_->loadPlugin(plugin_prefix + "Plugin_OctreeSceneManager"); diff --git a/recipes/ros-noetic-rviz/recipe.yaml b/recipes/ros-noetic-rviz/recipe.yaml new file mode 100644 index 000000000..65fd03ac6 --- /dev/null +++ b/recipes/ros-noetic-rviz/recipe.yaml @@ -0,0 +1,129 @@ +package: + name: ros-noetic-rviz + version: 1.14.20 +source: + git_url: https://github.com/ros-gbp/rviz-release.git + git_rev: release/noetic/rviz/1.14.20-1 + folder: ros-noetic-rviz/src/work + patches: + - patch/ros-noetic-rviz.patch + - patch/ros-noetic-rviz.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - pyqt-builder + - pyqt5-sip + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - assimp + - eigen + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-interactive-markers + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-python-qt-binding + - ros-noetic-resource-retriever + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml2 + - urdfdom + - urdfdom_headers + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - assimp + - ogre + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-interactive-markers + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-media-export + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-python-qt-binding + - ros-noetic-resource-retriever + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml2 + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-simulators/bld_catkin.bat b/recipes/ros-noetic-simulators/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-simulators/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-simulators/build_catkin.sh b/recipes/ros-noetic-simulators/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-simulators/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-simulators/recipe.yaml b/recipes/ros-noetic-simulators/recipe.yaml new file mode 100644 index 000000000..57a130377 --- /dev/null +++ b/recipes/ros-noetic-simulators/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-simulators + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/simulators/1.5.0-1 + folder: ros-noetic-simulators/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros-pkgs + - ros-noetic-robot + - ros-noetic-rqt-common-plugins + - ros-noetic-rqt-robot-plugins + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-smach-ros/bld_catkin.bat b/recipes/ros-noetic-smach-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-smach-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-smach-ros/build_catkin.sh b/recipes/ros-noetic-smach-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-smach-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-smach-ros/recipe.yaml b/recipes/ros-noetic-smach-ros/recipe.yaml new file mode 100644 index 000000000..e9068f367 --- /dev/null +++ b/recipes/ros-noetic-smach-ros/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-smach-ros + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/smach_ros/2.5.2-1 + folder: ros-noetic-smach-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-smach + - ros-noetic-smach-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat b/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-stereo-image-proc/build_catkin.sh b/recipes/ros-noetic-stereo-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-stereo-image-proc/recipe.yaml b/recipes/ros-noetic-stereo-image-proc/recipe.yaml new file mode 100644 index 000000000..1fb3b06f9 --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-stereo-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/stereo_image_proc/1.17.0-1 + folder: ros-noetic-stereo-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-proc + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-proc + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-stereo-msgs/bld_catkin.bat b/recipes/ros-noetic-stereo-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-stereo-msgs/build_catkin.sh b/recipes/ros-noetic-stereo-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-stereo-msgs/recipe.yaml b/recipes/ros-noetic-stereo-msgs/recipe.yaml new file mode 100644 index 000000000..e026938bf --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-stereo-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/stereo_msgs/1.13.1-1 + folder: ros-noetic-stereo-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-teb-local-planner/bld_catkin.bat b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-teb-local-planner/build_catkin.sh b/recipes/ros-noetic-teb-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.osx.patch b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.osx.patch new file mode 100644 index 000000000..aaf1bb56b --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.osx.patch @@ -0,0 +1,739 @@ +diff --git a/include/teb_local_planner/h_signature.h b/include/teb_local_planner/h_signature.h +index 8837950..4cffcda 100644 +--- a/include/teb_local_planner/h_signature.h ++++ b/include/teb_local_planner/h_signature.h +@@ -46,6 +46,7 @@ + #include + + #include ++#include + #include + #include + #include +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 165527db..df148c9c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,9 +31,10 @@ message(STATUS "System: ${CMAKE_SYSTEM}") + ## System dependencies are found with CMake's conventions + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_modules) + message(STATUS "${CMAKE_MODULE_PATH}") +-find_package(Boost REQUIRED COMPONENTS system thread graph) ++find_package(Boost REQUIRED COMPONENTS system thread graph) + find_package(SUITESPARSE REQUIRED) + find_package(G2O REQUIRED) ++find_package(CSparse REQUIRED) + + # Eigen3 FindScript Backward compatibility (ubuntu saucy) + # 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_LIBS ${SUITESPARSE_LIBRARIES} ${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 +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/recipes/ros-noetic-teb-local-planner/recipe.yaml b/recipes/ros-noetic-teb-local-planner/recipe.yaml new file mode 100644 index 000000000..9e081d186 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/recipe.yaml @@ -0,0 +1,92 @@ +package: + name: ros-noetic-teb-local-planner + version: 0.9.1 +source: + git_url: https://github.com/rst-tu-dortmund/teb_local_planner-release.git + git_rev: release/noetic/teb_local_planner/0.9.1-1 + folder: ros-noetic-teb-local-planner/src/work + patches: + - patch/ros-noetic-teb-local-planner.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf-conversions/bld_catkin.bat b/recipes/ros-noetic-tf-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf-conversions/build_catkin.sh b/recipes/ros-noetic-tf-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf-conversions/recipe.yaml b/recipes/ros-noetic-tf-conversions/recipe.yaml new file mode 100644 index 000000000..ece4706bc --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-tf-conversions + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/tf_conversions/1.13.2-1 + folder: ros-noetic-tf-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + run: + - eigen + - orocos-kdl + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf/bld_catkin.bat b/recipes/ros-noetic-tf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf/build_catkin.sh b/recipes/ros-noetic-tf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf/recipe.yaml b/recipes/ros-noetic-tf/recipe.yaml new file mode 100644 index 000000000..643cd0314 --- /dev/null +++ b/recipes/ros-noetic-tf/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-tf + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/tf/1.13.2-1 + folder: ros-noetic-tf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - graphviz + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rosunit + - ros-noetic-roswtf + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + run: + - graphviz + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roswtf + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat b/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh b/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml b/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml new file mode 100644 index 000000000..99601ab1c --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-tf2-geometry-msgs + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_geometry_msgs/0.7.7-1 + folder: ros-noetic-tf2-geometry-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-ros-environment + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - orocos-kdl + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-kdl/bld_catkin.bat b/recipes/ros-noetic-tf2-kdl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-kdl/build_catkin.sh b/recipes/ros-noetic-tf2-kdl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-kdl/recipe.yaml b/recipes/ros-noetic-tf2-kdl/recipe.yaml new file mode 100644 index 000000000..6b04c8e07 --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-tf2-kdl + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_kdl/0.7.7-1 + folder: ros-noetic-tf2-kdl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-ros-environment + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - eigen + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-ros/bld_catkin.bat b/recipes/ros-noetic-tf2-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-ros/build_catkin.sh b/recipes/ros-noetic-tf2-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-ros/recipe.yaml b/recipes/ros-noetic-tf2-ros/recipe.yaml new file mode 100644 index 000000000..b5e15705a --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-tf2-ros + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_ros/0.7.7-1 + folder: ros-noetic-tf2-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat b/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh b/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml b/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml new file mode 100644 index 000000000..cbeb204f7 --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-tf2-sensor-msgs + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_sensor_msgs/0.7.7-1 + folder: ros-noetic-tf2-sensor-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - eigen + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-tools/bld_catkin.bat b/recipes/ros-noetic-tf2-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-tools/build_catkin.sh b/recipes/ros-noetic-tf2-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-tools/recipe.yaml b/recipes/ros-noetic-tf2-tools/recipe.yaml new file mode 100644 index 000000000..5a7b849b5 --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-tf2-tools + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_tools/0.7.7-1 + folder: ros-noetic-tf2-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-theora-image-transport/bld_catkin.bat b/recipes/ros-noetic-theora-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-theora-image-transport/build_catkin.sh b/recipes/ros-noetic-theora-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-theora-image-transport/recipe.yaml b/recipes/ros-noetic-theora-image-transport/recipe.yaml new file mode 100644 index 000000000..86f64c38f --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-theora-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/theora_image_transport/1.14.0-1 + folder: ros-noetic-theora-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libogg + - libtheora + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-std-msgs + run: + - libogg + - libtheora + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat b/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-actionlib/build_catkin.sh b/recipes/ros-noetic-turtle-actionlib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-actionlib/recipe.yaml b/recipes/ros-noetic-turtle-actionlib/recipe.yaml new file mode 100644 index 000000000..6d0667204 --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-turtle-actionlib + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/turtle_actionlib/0.2.0-1 + folder: ros-noetic-turtle-actionlib/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-angles + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-tf/bld_catkin.bat b/recipes/ros-noetic-turtle-tf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-tf/build_catkin.sh b/recipes/ros-noetic-turtle-tf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-tf/recipe.yaml b/recipes/ros-noetic-turtle-tf/recipe.yaml new file mode 100644 index 000000000..e2e31b7ee --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-turtle-tf + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/turtle_tf/0.2.3-1 + folder: ros-noetic-turtle-tf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-tf2/bld_catkin.bat b/recipes/ros-noetic-turtle-tf2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-tf2/build_catkin.sh b/recipes/ros-noetic-turtle-tf2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-tf2/recipe.yaml b/recipes/ros-noetic-turtle-tf2/recipe.yaml new file mode 100644 index 000000000..3d868108d --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtle-tf2 + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/turtle_tf2/0.2.3-1 + folder: ros-noetic-turtle-tf2/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh b/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml b/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml new file mode 100644 index 000000000..37dfff99c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtlebot3-bringup + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_bringup/1.2.5-1 + folder: ros-noetic-turtlebot3-bringup/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-hls-lfcd-lds-driver + - ros-noetic-joint-state-publisher + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rosserial-python + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-description + - ros-noetic-turtlebot3-msgs + - ros-noetic-turtlebot3-teleop + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-example/build_catkin.sh b/recipes/ros-noetic-turtlebot3-example/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-example/recipe.yaml b/recipes/ros-noetic-turtlebot3-example/recipe.yaml new file mode 100644 index 000000000..52b8f776a --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-turtlebot3-example + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_example/1.2.5-1 + folder: ros-noetic-turtlebot3-example/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-bringup + - ros-noetic-turtlebot3-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh b/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-fake/recipe.yaml b/recipes/ros-noetic-turtlebot3-fake/recipe.yaml new file mode 100644 index 000000000..b029338f4 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-turtlebot3-fake + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_fake/1.3.2-2 + folder: ros-noetic-turtlebot3-fake/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlebot3-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlebot3-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh b/recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml b/recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml new file mode 100644 index 000000000..12d08d92a --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtlebot3-gazebo + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_gazebo/1.3.2-2 + folder: ros-noetic-turtlebot3-gazebo/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - gazebo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlebot3-description + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh b/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml b/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml new file mode 100644 index 000000000..ac4225ff3 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-turtlebot3-navigation + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_navigation/1.2.5-1 + folder: ros-noetic-turtlebot3-navigation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-amcl + - ros-noetic-map-server + - ros-noetic-move-base + - ros-noetic-turtlebot3-bringup + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh b/recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-simulations/recipe.yaml b/recipes/ros-noetic-turtlebot3-simulations/recipe.yaml new file mode 100644 index 000000000..1a251562a --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-turtlebot3-simulations + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_simulations/1.3.2-2 + folder: ros-noetic-turtlebot3-simulations/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-turtlebot3-fake + - ros-noetic-turtlebot3-gazebo + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh b/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-slam/recipe.yaml b/recipes/ros-noetic-turtlebot3-slam/recipe.yaml new file mode 100644 index 000000000..9766c0269 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-turtlebot3-slam + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_slam/1.2.5-1 + folder: ros-noetic-turtlebot3-slam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-turtlebot3-bringup + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3/bld_catkin.bat b/recipes/ros-noetic-turtlebot3/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3/build_catkin.sh b/recipes/ros-noetic-turtlebot3/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3/recipe.yaml b/recipes/ros-noetic-turtlebot3/recipe.yaml new file mode 100644 index 000000000..984e79256 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-turtlebot3 + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3/1.2.5-1 + folder: ros-noetic-turtlebot3/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-turtlebot3-bringup + - ros-noetic-turtlebot3-description + - ros-noetic-turtlebot3-example + - ros-noetic-turtlebot3-navigation + - ros-noetic-turtlebot3-slam + - ros-noetic-turtlebot3-teleop + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat b/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh b/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml b/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml new file mode 100644 index 000000000..9014f7ce7 --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-urdf-sim-tutorial + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/urdf_sim_tutorial-release.git + git_rev: release/noetic/urdf_sim_tutorial/0.5.1-1 + folder: ros-noetic-urdf-sim-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-manager + - ros-noetic-diff-drive-controller + - ros-noetic-gazebo-ros + - ros-noetic-gazebo-ros-control + - ros-noetic-joint-state-controller + - ros-noetic-position-controllers + - ros-noetic-robot-state-publisher + - ros-noetic-rqt-robot-steering + - ros-noetic-rviz + - ros-noetic-urdf-tutorial + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-manager + - ros-noetic-diff-drive-controller + - ros-noetic-gazebo-ros + - ros-noetic-gazebo-ros-control + - ros-noetic-joint-state-controller + - ros-noetic-position-controllers + - ros-noetic-robot-state-publisher + - ros-noetic-rqt-robot-steering + - ros-noetic-rviz + - ros-noetic-urdf-tutorial + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat b/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-tutorial/build_catkin.sh b/recipes/ros-noetic-urdf-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-tutorial/recipe.yaml b/recipes/ros-noetic-urdf-tutorial/recipe.yaml new file mode 100644 index 000000000..865574380 --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-urdf-tutorial + version: 0.5.0 +source: + git_url: https://github.com/ros-gbp/urdf_tutorial-release.git + git_rev: release/noetic/urdf_tutorial/0.5.0-1 + folder: ros-noetic-urdf-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot-state-publisher + - ros-noetic-roslaunch + - ros-noetic-rviz + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velocity-controllers/bld_catkin.bat b/recipes/ros-noetic-velocity-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velocity-controllers/build_catkin.sh b/recipes/ros-noetic-velocity-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velocity-controllers/recipe.yaml b/recipes/ros-noetic-velocity-controllers/recipe.yaml new file mode 100644 index 000000000..956740e13 --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-velocity-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/velocity_controllers/0.21.2-1 + folder: ros-noetic-velocity-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..9b4e9ce10 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-velodyne-gazebo-plugins + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_gazebo_plugins/1.0.13-1 + folder: ros-noetic-velodyne-gazebo-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-simulator/build_catkin.sh b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-simulator/recipe.yaml b/recipes/ros-noetic-velodyne-simulator/recipe.yaml new file mode 100644 index 000000000..16e62b022 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-velodyne-simulator + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_simulator/1.0.13-1 + folder: ros-noetic-velodyne-simulator/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-velodyne-description + - ros-noetic-velodyne-gazebo-plugins + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-vision-opencv/bld_catkin.bat b/recipes/ros-noetic-vision-opencv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-vision-opencv/build_catkin.sh b/recipes/ros-noetic-vision-opencv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-vision-opencv/recipe.yaml b/recipes/ros-noetic-vision-opencv/recipe.yaml new file mode 100644 index 000000000..11e8734eb --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-vision-opencv + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/vision_opencv/1.16.2-1 + folder: ros-noetic-vision-opencv/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat b/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-visualization-tutorials/build_catkin.sh b/recipes/ros-noetic-visualization-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-visualization-tutorials/recipe.yaml b/recipes/ros-noetic-visualization-tutorials/recipe.yaml new file mode 100644 index 000000000..7b3dcc06a --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-visualization-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/visualization_tutorials/0.11.0-1 + folder: ros-noetic-visualization-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-marker-tutorials + - ros-noetic-librviz-tutorial + - ros-noetic-rviz-plugin-tutorials + - ros-noetic-rviz-python-tutorial + - ros-noetic-visualization-marker-tutorials + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-marker-tutorials + - ros-noetic-librviz-tutorial + - ros-noetic-rviz-plugin-tutorials + - ros-noetic-rviz-python-tutorial + - ros-noetic-visualization-marker-tutorials + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-viz/bld_catkin.bat b/recipes/ros-noetic-viz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-viz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-viz/build_catkin.sh b/recipes/ros-noetic-viz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-viz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-viz/recipe.yaml b/recipes/ros-noetic-viz/recipe.yaml new file mode 100644 index 000000000..6833e1d08 --- /dev/null +++ b/recipes/ros-noetic-viz/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-viz + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/viz/1.5.0-1 + folder: ros-noetic-viz/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ros-base + - ros-noetic-rqt-common-plugins + - ros-noetic-rqt-robot-plugins + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-warehouse-ros/bld_catkin.bat b/recipes/ros-noetic-warehouse-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-warehouse-ros/build_catkin.sh b/recipes/ros-noetic-warehouse-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-warehouse-ros/recipe.yaml b/recipes/ros-noetic-warehouse-ros/recipe.yaml new file mode 100644 index 000000000..702ff20ce --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-warehouse-ros + version: 0.9.5 +source: + git_url: https://github.com/ros-gbp/warehouse_ros-release.git + git_rev: release/noetic/warehouse_ros/0.9.5-1 + folder: ros-noetic-warehouse-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 20 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/vinca.yaml b/vinca.yaml new file mode 100644 index 000000000..fe64790e1 --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,894 @@ +ros_distro: noetic +mutex_package: ros-distro-mutex 0.5 noetic + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 20 + +# Ignore all dependencies of selected packages +skip_all_deps: false + +# If full rebuild, the build number of the existing package has +# to match the selected build number for skipping +full_rebuild: true + +packages_skip_by_deps: + # - rviz + # - diagnostic_updater + - eigenpy + - hpp-fcl + - pinocchio + +packages_remove_from_deps: + - stage-ros + - stage + +skip_existing: + # - https://conda.anaconda.org/robostack/ + - https://conda.anaconda.org/robostack-staging/ + +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . +packages_select_by_deps: + - rospack + - microstrain-inertial-driver + - microstrain-inertial-msgs + - octomap-ros + - ackermann-msgs + - fake-localization + - realsense2-description + + - rviz + - python-qt-binding + - qt-gui-cpp + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - rviz_visual_tools + - rgbd-launch + + - plotjuggler + - plotjuggler_ros + + - python-qt-binding + - qt-gui + - qt-gui-cpp + - ros-control + - ros-controllers + - imu-sensor-controller + - ackermann-steering-controller + - rqt-gui + - rqt-ez-publisher + - pcl-ros + - pcl-conversions + - velodyne-description + - effort-controllers + - velocity-controllers + - teb-local-planner + - turtlebot3-teleop + - force-torque-sensor-controller + - gripper-action-controller + - rqt-gui-cpp + - rqt-gui-py + - joint-trajectory-controller + - velodyne-simulator + - velodyne-gazebo-plugins + + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - gps-common + - rosbridge_suite + + + # ## Only limited number of packages to reduce maintainer burden + - catkin + - rviz + - desktop + - desktop_full + - perception + - simulators + - moveit + - robot_localization + - amcl + - map-server + - move-base + - gmapping + - turtlebot3 + - turtlebot3-simulations + + # # # # For jackal + # - gazebo-dev + # - gazebo-ros + # - hector-gazebo-plugins + # - gazebo-ros-control + # - gazebo-plugins + # - lms1xx + # - controller-manager + # - interactive_marker_twist_server + # - diff-drive-controller + # - joint-state-controller + # - joy + # - robot-localization + # - teleop-twist-joy + # - twist-mux + # - pointgrey-camera-description + # - nmea-msgs + # - geometry-msgs + # - nmea-navsat-driver + # - rosserial-server + # - imu-filter-madgwick + # - rosserial-python + # - tf2_web_republisher + # - libfranka + # - franka + # - franka-gripper + # - franka-hw + # - franka-msgs + # - franka-description + # - franka-control + # - franka_example_controllers + # - franka_ros + # - combined-robot-hw + # - panda-moveit-config + # - moveit-ros-visualization + # - moveit-ros-planning-interface + # - niryo_one_simulation + # - teb-local-planner + # - turtlebot3 + # - turtlebot3-fake + # - librealsense2 + # - realsense2_camera + # - ur-msgs + # - rosdoc-lite + # - ros_numpy + + # - sound-play + # - pid + + ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED + ## + # TODO OSX + ## + + # - mavros-msgs + # - mavros + # - libmavconn + # - mavros-extras + # - mavlink + + + # - grid_map # fails with tbb-error, probably need to use cmake instead of pkg-config. See grid-map-osx branch + # - pybind11_catkin # need to be unvendored + + # Fix after rebuild + # - ur_client_library + # - tsid + # - mavros + # - tesseract-collision + # - tesseract-common + # - tesseract-geometry + # - tesseract-scene-graph + # - tesseract-srdf + # - tesseract-support + # - robot-calibration + # - mbf-costmap-nav + # - mbf-simple-nav + # - mbf-abstract-nav + + # - openslam-gmapping + # - turtlesim + # - rviz + # - arbotix-controllers + # - arbotix-sensors + # - audibot + # - autoware-msgs + # - cartesian-trajectory-controller + # - cartesian-trajectory-interpolation + # - cob-base-controller-utils + # - cob-frame-tracker + # - cob-gazebo-plugins + # - cob-gazebo-ros-control + # - cob-lookat-action + # - cob-mapping-slam + # - cob-model-identifier + # - cob-navigation-global + # - cob-navigation-slam + # - cob-omni-drive-controller + # - cob-tricycle-controller + # - collada-parser + # - collada-urdf + # - costmap-queue + # - dataspeed-pds-rqt + # - dataspeed-pds-scripts + # - dual-quaternions-ros + # - dynamic-graph-tutorial + # - ecl-config + # - ecl-console + # - ecl-converters-lite + # - ecl-errors + # - ecl-exceptions + # - ecl-filesystem + # - ecl-io + # - ecl-ipc + # - ecl-lite + # - ecl-sigslots-lite + # - ecl-time + # - ecl-time-lite + # - ecl-tools + # - ethercat-trigger-controllers + # - fetch-calibration + # - fetch-drivers + # - fetch-ikfast-plugin + # - fetch-open-auto-dock + # - fkie-master-sync + # - flexbe-mirror + # - flexbe-onboard + # - flexbe-states + # - flexbe-testing + # - flexbe-widget + # - gazebo-ros-control-select-joints + # - geographic-info + # - gpp-plugin + # - grid-map-loader + # - grid-map-ros + # - grid-map-rviz-plugin + # - grid-map-visualization + # - handeye + # - hector-geotiff-plugins + # - imu-monitor + # - industrial-trajectory-filters + # - industrial-utils + # - ixblue-ins + # - joint-trajectory-action-tools + # - joint-trajectory-generator + # - laser-cb-detector + # - leo + # - magical-ros2-conversion-tool + # - mir-gazebo + # - monocam-settler + # - move-base-flex + # - moveit-resources-prbt-ikfast-manipulator-plugin + # - nav-2d-utils + # - open-manipulator-gazebo + # - open-manipulator-p-gazebo + # - open-manipulator-p-simulations + # - open-manipulator-simulations + # - osm-cartography + # - p2os-driver + # - p2os-urdf + # - pass-through-controllers + # - pincher-arm-bringup + # - pincher-arm-ikfast-plugin + # - pincher-arm-moveit-demos + # - pr2-arm-kinematics + # - pr2-arm-move-ik + # - pr2-calibration-controllers + # - pr2-common + # - pr2-controller-interface + # - pr2-controller-manager + # - pr2-gripper-action + # - pr2-head-action + # - pr2-kinematics + # - pr2-mannequin-mode + # - pr2-mechanism + # - pr2-mechanism-controllers + # - pr2-mechanism-diagnostics + # - pr2-mechanism-model + # - pr2-tuckarm + # - rc-reason-clients + # - robot-controllers + # - robot-mechanism-controllers + # - ros-control-boilerplate + # - ros-emacs-utils + # - ros-realtime + # - roslisp-repl + # - rosrt + # - route-network + # - sbpl-recovery + # - scaled-joint-trajectory-controller + # - sot-core + # - sot-tools + # - swri-opencv-util + # - swri-profiler + # - swri-profiler-tools + # - swri-roscpp + # - teleop-tools + # - test-osm + # - toposens-description + # - trac-ik + # - trac-ik-examples + # - trac-ik-kinematics-plugin + # - trac-ik-lib + # - trac-ik-python + # - track-odometry + # - trajectory-tracker + # - turtlebot3-autorace-driving + # - turtlebot3-simulations + # - ublox + # - ublox-gps + # - ublox-msgs + # - unique-identifier + # - urdf-geometry-parser + # - usb-cam-controllers + # - variant + # - variant-topic-tools + # - virtual-force-publisher + # - volta-base + # - volta-control + # - volta-description + # - volta-localization + # - volta-msgs + # - volta-navigation + # - volta-rules + # - wifi-ddwrt + # - wireless-watcher + # - wu-ros-tools + # - abb-rapid-sm-addin-msgs + # - arbotix-python + # - audibot-gazebo + # - automotive-autonomy-msgs + # - autoware-external-msgs + # - calibration-estimation + # - can-dbc-parser + # - cob-3d-mapping-msgs + # - cob-calibration-data + # - cob-collision-velocity-filter + # - cob-common + # - cob-dashboard + # - cob-default-robot-config + # - cob-environments + # - cob-gazebo-objects + # - cob-gazebo-worlds + # - cob-grasp-generation + # - cob-linear-nav + # - cob-navigation-local + # - cob-substitute + # - cob-trajectory-controller + # - combined-robot-hw-tests + # - costmap-cspace + # - criutils + # - dataspeed-can-msg-filters + # - driver-common + # - dual-quaternions + # - dwb-msgs + # - dynamic-graph-python + # - dynamixel-sdk-examples + # - dynamixel-workbench-msgs + # - ecl-build + # - ecl-command-line + # - ecl-eigen + # - ecl-mpl + # - executive-smach-visualization + # - fetch-driver-msgs + # - fingertip-pressure + # - fkie-master-discovery + # - flexbe-core + # - flexbe-input + # - geodesy + # - geometry2 + # - gpp-prune-path + # - gpp-update-map + # - graceful-controller-ros + # - grid-map-costmap-2d + # - grid-map-cv + # - grid-map-octomap + # - hector-compressed-map-transport + # - hector-geotiff + # - hector-map-server + # - hector-trajectory-server + # - imu-from-ios-sensorlog + # - industrial-deprecated + # - iris-lama-ros + # - ixblue-ins-driver + # - jderobot-drones + # - joint-states-settler + # - joint-trajectory-action + # - joy-teleop + # - joystick-interrupt + # - jsk-common-msgs + # - jsk-recognition-msgs + # - label-manager + # - laser-filtering + # - leo-teleop + # - leo-viz + # - lockfree + # - locomotor-msgs + # - map-organizer + # - marti-nav-msgs + # - mesh-msgs-transform + # - mir-driver + # - nav-core2 + # - neonavigation-msgs + # - obj-to-pointcloud + # - ocean-battery-driver + # - omron-os32c-driver + # - open-manipulator-msgs + # - opw-kinematics + # - pilz-status-indicator-rqt + # - pilz-testutils + # - pincher-arm-moveit-config + # - power-monitor + # - pr2-app-manager + # - pr2-computer-monitor + # - pr2-dashboard-aggregator + # - pr2-position-scripts + # - pr2-self-test-msgs + # - pr2-teleop + # - pr2-tuck-arms-action + # - py-trees-ros + # - qt-gui-core + # - rc-reason-msgs + # - robot-controllers-interface + # - robotis-manipulator + # - rosbag-pandas + # - rosbag-snapshot + # - roscompile + # - rqt-py-trees + # - sbpl-lattice-planner + # - single-joint-position-action + # - slime-ros + # - speed-scaling-state-controller + # - swri-console-util + # - abb-egm-msgs + # - abb-rapid-msgs + # - abb-robot-msgs + # - ackermann-msgs + # - actionlib-tools + # - allocators + # - app-manager + # - apriltag + # - arbotix-firmware + # - arbotix-msgs + # - assimp-devel + # - assisted-teleop + # - async-comm + # - async-web-server-cpp + # - audibot-description + # - audio-common-msgs + # - automotive-navigation-msgs + # - automotive-platform-msgs + # - autoware-can-msgs + # - autoware-config-msgs + # - autoware-lanelet2-msgs + # - autoware-map-msgs + # - autoware-system-msgs + # - auv-msgs + # - backward-ros + # - baldor + # - behaviortree-cpp-v3 + # - boost-sml + # - bosch-locator-bridge + # - bota-signal-handler + # - calibration-msgs + # - can-msgs + # - capabilities + # - carla-msgs + # - cartesian-control-msgs + # - cartesian-interface + # - cartesian-msgs + # - catkin-virtualenv + # - cob-actions + # - cob-android-msgs + # - cob-android-resource-server + # - cob-android-settings + # - cob-base-velocity-smoother + # - cob-control-mode-adapter + # - cob-control-msgs + # - cob-default-env-config + # - cob-description + # - cob-docker-control + # - cob-footprint-observer + # - cob-gazebo-tools + # - cob-hardware-emulation + # - cob-interactive-teleop + # - cob-light + # - cob-mecanum-controller + # - cob-moveit-config + # - cob-msgs + # - cob-navigation-config + # - cob-object-detection-msgs + # - cob-perception-msgs + # - cob-reflector-referencing + # - cob-safety-controller + # - cob-scan-unifier + # - cob-sick-lms1xx + # - cob-srvs + # - cob-supported-robots + # - cob-utilities + # - cob-vision-utils + # - color-util + # - computer-status-msgs + # - control-box-rst + # - controller-manager-tests + # - convex-decomposition + # - costmap-cspace-msgs + # - csm + # - darknet-ros-msgs + # - dataspeed-pds-msgs + # - dataspeed-ulc-msgs + # - dbw-fca-description + # - dbw-fca-msgs + # - dbw-mkz-description + # - dbw-mkz-msgs + # - dbw-polaris-description + # - dbw-polaris-msgs + # - ddynamic-reconfigure-python + # - delphi-esr-msgs + # - delphi-mrr-msgs + # - delphi-srr-msgs + # - derived-object-msgs + # - dialogflow-task-executive + # - dnn-detect + # - driver-base + # - drone-assets + # - drone-wrapper + # - dynamic-edt-3d + # - dynamic-graph + # - dynamic-tf-publisher + # - dynamixel-sdk + # - easy-markers + # - ecl-license + # - eiquadprog + # - exotica-val-description + # - explore-lite + # - fadecandy-msgs + # - fetch-auto-dock-msgs + # - fetch-description + # - fetch-maps + # - fetch-teleop + # - fetch-tools + # - find-object-2d + # - fkie-message-filters + # - fkie-multimaster-msgs + # - flexbe-msgs + # - four-wheel-steering-msgs + # - foxglove-msgs + # - gazebo-video-monitor-msgs + # - gdrive-ros + # - generic-throttle + # - genmypy + # - goal-passer + # - gpp-interface + # - graceful-controller + # - grasping-msgs + # - grid-map-core + # - grid-map-msgs + # - hector-gazebo-worlds + # - hector-imu-attitude-to-tf + # - hector-imu-tools + # - hector-map-tools + # - hector-mapping + # - hector-marker-drawing + # - hector-nav-msgs + # - hector-xacro-tools + # - image-cb-detector + # - image-exposure-msgs + # - imu-processors + # - industrial-msgs + # - industrial-robot-status-interface + # - interval-intersection + # - ipa-3d-fov-visualization + # - iris-lama + # - ivcon + # - ixblue-ins-msgs + # - ixblue-stdbin-decoder + # - jderobot-assets + # - joy-listener + # - jsk-footstep-msgs + # - jsk-gui-msgs + # - jsk-hark-msgs + # - jsk-network-tools + # - jsk-tilt-laser + # - kalman-filter + # - kartech-linear-actuator-msgs + # - key-teleop + # - kobuki-msgs + # - laser-filters-jsk-patch + # - led-msgs + # - leo-description + # - lgsvl-msgs + # # - libdlib + # - log-view + # - lpg-planner + # - map-laser + # - map-organizer-msgs + # - marker-msgs + # - marti-can-msgs + # - marti-common-msgs + # - marti-data-structures + # - marti-dbw-msgs + # - marti-perception-msgs + # - marti-sensor-msgs + # - marti-status-msgs + # - marti-visualization-msgs + # - mcl-3dl-msgs + # - mesh-msgs + # - message-to-tf + # - mini-maxwell + # - mir-actions + # - mir-description + # - mir-msgs + # - mobile-robot-simulator + # - mobileye-560-660-msgs + # - mocap-optitrack + # - mouse-teleop + # - move-base-sequence + # - moveit-python + # - moveit-resources + # - moveit-runtime + # - mpc-local-planner-msgs + # - mqtt-bridge + # - mrpt-msgs + # - mrt-cmake-modules + # - multirobot-map-merge + # - multisense-description + # - nav-2d-msgs + # - nav-grid + # - ncd-parser + # - neo-local-planner + # - neobotix-usboard-msgs + # - neonavigation-common + # - network-interface + # - nonpersistent-voxel-layer + # - novatel-oem7-msgs + # - ntpd-driver + # - odva-ethernetip + # - openzen-sensor + # - p2os-doc + # - p2os-msgs + # - p2os-teleop + # - pacmod-msgs + # - paho-mqtt-c + # - parameter-pa + # - people-msgs + # - pgm-learner + # - phidgets-msgs + # - picovoice-msgs + # - pid + # - pilz-industrial-motion-testutils + # - pilz-msgs + # - pilz-utils + # - pincher-arm-description + # - pinocchio + # - planner-cspace-msgs + # - polar-scan-matcher + # - pose-base-controller + # - pose-follower + # - posedetection-msgs + # - power-msgs + # - pr2-common-action-msgs + # - pr2-controllers-msgs + # - pr2-description + # - pr2-hardware-interface + # - pr2-machine + # - pr2-mechanism-msgs + # - pr2-msgs + # - prosilica-gige-sdk + # - py-trees + # - py-trees-msgs + # - pyquaternion + # - qt-gui-app + # - raw-description + # - razor-imu-9dof + # - rc-common-msgs + # - rc-visard-description + # - remote-rosbag-record + # - robot-calibration-msgs + # - robot-controllers-msgs + # - roboticsgroup-upatras-gazebo-plugins + # - rokubimini + # - rokubimini-description + # - rokubimini-msgs + # - ros-babel-fish-test-msgs + # - ros-industrial-cmake-boilerplate + # - ros-introspection + # - ros-pytest + # - ros-type-introspection + # - rosatomic + # - rosbag-snapshot-msgs + # - rosbaglive + # - rosdiagnostic + # - rosemacs + # - rosfmt + # - rosmon-msgs + # - rosparam-shortcuts + # - rospatlite + # - rosping + # - rospy-message-converter + # - rosserial-chibios + # - rosserial-embeddedlinux + # - rosserial-mbed + # - rosserial-tivac + # - rosserial-vex-cortex + # - rosserial-vex-v5 + # - rosserial-windows + # - rosserial-xbee + # - rostwitter + # - rqt + # - rqt-controller-manager + # - rqt-drone-teleop + - rqt-ez-publisher + # - rqt-ground-robot-teleop + # - rqt-joint-trajectory-controller + # - rx-service-tools + # - safety-limiter-msgs + # - sbpl + # - schunk-description + # - sdc21x0 + # - septentrio-gnss-driver + # - service-tools + # - settlerlib + # - sick-safetyscanners + # - sick-tim + # - slam-gmapping + # - slam-toolbox-rviz + # - slic + # - slider-publisher + # - slime-wrapper + # - smach-viewer + # - sob-layer + # - soem + # - sophus + # - sound-play + # - speech-recognition-msgs + # - speed-scaling-interface + # - swri-console + # - swri-dbw-interface + # - swri-math-util + # - swri-prefix-tools + # - swri-profiler-msgs + # - swri-rospy + # - swri-string-util + # - swri-system-util + # - swri-yaml-util + # - tablet-socket-msgs + # - taskflow + # - teleop-legged-robots + # - teleop-tools-msgs + # - teleop-twist-keyboard + # - tf2-bullet + # - tf2-tools + # - timestamp-tools + # - toposens-msgs + # - trajectory-tracker-msgs + # - turtlebot3-autorace-camera + # - turtlebot3-autorace-core + # - turtlebot3-autorace-detect + # - turtlebot3-autorace-msgs + # - turtlebot3-gazebo + # - twist-recovery + # - ublox-serialization + # - unique-id + # - urg-stamped + # - usb-cam-hardware-interface + # - variant-msgs + # - vector-map-msgs + # - velodyne-pcl + # - view-controller-msgs + # - vision-msgs + # - vrpn + # - webots-ros + # - wge100-camera-firmware + # - willow-maps + # - wireless-msgs + # - xpp-msgs + # - xpp-states + # - xv-11-laser-driver + + # ## + # # DONE OSX + # ## + # - moveit-msgs + # - rviz + # - moveit_core + # - moveit_kinematics + # - robot_state_publisher + # - tf_conversions + # - kdl_parser_py + # - rosserial + # - rosserial-arduino + # - rosserial-python + # - rosserial-msgs + # - rviz + # - tf2_web_republisher + # - franka_ros + # - franka_example_controllers + # - libfranka + # - franka_visualization + # - franka_hw + # - franka_gripper + # - franka_ros + # - franka_msgs + # - franka_description + # - franka_control + # - fcl + # - eigenpy + # - kdl_parser_py + # - catkin + # - rospack + # - pluginlib + # - qt_gui_cpp + # - velodyne_simulator + # - rviz + # - hector_gazebo_plugins + # - navigation + # - catkin + # - desktop + # - desktop_full + # - slam_karto + # - class_loader + # - robot + # - executive_smach + # - geometry_tutorials + # - interactive_marker_tutorials + # - joint_state_publisher_gui + # - nodelet_core + # - robot_state_publisher + # - diagnostic_analysis + # - diagnostic_common_diagnostics + # - ros_control + # - ros_controllers + # - rviz_visual_tools + # - perception + # - perception_pcl + # - joy + # - imu_tools + # - velodyne + # - robot_localization + # - urg_node + # - teb_local_planner + # - moveit + # - slam_toolbox + # - turtlebot3 + # - cnpy + # - turtlebot3_fake + # - gmapping + # - interactive_marker_twist_server + # - teleop_twist_joy + # - twist_mux + # - pointgrey_camera_description + # - lms1xx + # - nmea_msgs + # - rosserial + # - nmea_navsat_driver + # - rosserial_server + # - robot_upstart + # - nmea_comms + + ## + # NOT RELEASED ON NOETIC... + ## + # - niryo_one_simulation + + ## + # PROBLEMS: + ## + # - rtabmap_ros # openni is missing, and need to find names for + # {'libfreenect-dev', 'libopenni-dev', 'tango-icon-theme', 'libvtk-qt'} + # - behavior_tree # isn't released? + +patch_dir: patch diff --git a/vinca_f77689b8dc.json b/vinca_f77689b8dc.json new file mode 100644 index 000000000..7006e23f6 --- /dev/null +++ b/vinca_f77689b8dc.json @@ -0,0 +1 @@ +{"packages":{"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py39h63f5d1b_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=13.0.1","numpy >=1.19.5,<2.0a0","python","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h63f5d1b_1","timestamp":1670448873727,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"70e9fe97365a7895bb17a72fe26af3b2","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":497767,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7464fd9e5541271b0fa0e9d126e03e2b90bd1a3c39e3cefb310386a59085aad9"},"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547190422,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7036ab9822155b2179e1ebc7a95de832","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":64885,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"032ce10185a3d0ba35f06cc3a381c7edef076ce8ddbdf87621ea0cbcf587a139"},"ros-humble-rosbag2-storage-mcap-testdata-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651189103,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b054c58e2ddf027986686f3677d2a300","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":72835,"version":"0.15.4","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feb0b75b291ecb58cb3a2f7269c324085b9d262ab785718393cd9be783b34662"},"ros-humble-mcap-vendor-0.6.0-py39he251886_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=13.0.1","python","python_abi 3.9.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39he251886_1","timestamp":1670448988564,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"62164a2dda73f7ecc117f73e8be7588a","name":"ros-humble-mcap-vendor","requires":[],"size":663971,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a9ea5caa76bc453b998f73a5d797d3a62e142a40b2ab91369552ba0576d2234"},"ros-humble-mcap-vendor-0.6.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540041640,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"939c212b1603ebd02eb16a887ea92f01","name":"ros-humble-mcap-vendor","requires":[],"size":249389,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"071478eedb56120b23e55249fd0c9181c26fa49bce59d3588a98670ea6dc8f25"},"ros-humble-mcap-vendor-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675640073537,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c7c978bee44ff9af2a64d014726e72b8","name":"ros-humble-mcap-vendor","requires":[],"size":237613,"version":"0.15.4","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a844983e83db5efff400098d0c51ae87f64d5ea7a4c0262d8ec324575a415088"},"ros-humble-nav2-collision-monitor-1.1.3-py39he251886_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=13.0.1","python","python_abi 3.9.*","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39he251886_1","timestamp":1670448736264,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e0a1293f2b84243c1447b22fa6831af2","name":"ros-humble-nav2-collision-monitor","requires":[],"size":281879,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afe4df1dceadb08a4634fc89be42014881316f1b90b00ce1dc31183bce0886ef"},"ros-humble-nav2-collision-monitor-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676260378,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"40da58d6ec74b979952f37171e45bfd4","name":"ros-humble-nav2-collision-monitor","requires":[],"size":284947,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9be6adae103f6a0a91709c322e7c2fe328dda0142ae328a5290ac2b3831ecfc"},"ros-humble-nav2-collision-monitor-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840668054,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a4254a3608f58a49b669cad62b685f47","name":"ros-humble-nav2-collision-monitor","requires":[],"size":281675,"version":"1.1.5","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"046740aa5270d901f63e2f6388b2c517ae16171521d993957d36b7ba95b83ab2"},"ros-humble-tl-expected-1.0.2-py39he251886_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=13.0.1","python","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39he251886_1","timestamp":1670448516126,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7b1c5b0992e0f59474f38f783e7c43d1","name":"ros-humble-tl-expected","requires":[],"size":421790,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3df2a88faa4529612be743562c4e62894af795fb9661b605b86c454e835999f"},"ros-humble-tl-expected-1.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539464806,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16650ff1449f715762f040e843b32bca","name":"ros-humble-tl-expected","requires":[],"size":20274,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0233d75484590b5660250892e37d6b8bbd1b34053183e92d11d2411792c4ae3c"},"ros-humble-tl-expected-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639082832,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5a0350159df61723cad413a7beef5810","name":"ros-humble-tl-expected","requires":[],"size":21672,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9cbb54c2619cd8772b26bcca8f524c3f827836e022921e8a877eb7d86569f18b"},"ros-humble-ros-gz-bridge-0.244.9-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-trajectory-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559026540,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c02d8e03fe84aa0f8704bc87aa72546","name":"ros-humble-ros-gz-bridge","requires":[],"size":1972529,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d40d5a29ff3dba322444fb163b537add1adc156427fb17434b8eefc3d790f6b0"},"ros-humble-ros-gz-bridge-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-trajectory-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683795748,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"385a7b24f5f6bc02a8b1b1ba6c295d47","name":"ros-humble-ros-gz-bridge","requires":[],"size":1946760,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"633811251725c09e4417dec1dcb7b2b2460278e30e0b56304b32ba63117d883e"},"ros-humble-kinematics-interface-0.1.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687845617880,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1ca23a572d4fc12f95cf7ded54430d95","name":"ros-humble-kinematics-interface","requires":[],"size":16310,"version":"0.1.0","binstar":{"package_id":"6391074e66b3e4e3dec8e369","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f0663d3be55de6ed9ea0d528f6456f412501333ca6499303ab886d43450dc04"},"ros-humble-sdformat-urdf-1.0.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libsdformat12 >=12.6.0,<13.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","urdfdom_headers"],"build":"py310h61b69e1_2","timestamp":1670546345195,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"18e136460e3bcef3aca2fac1e0171ab3","name":"ros-humble-sdformat-urdf","requires":[],"size":85503,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c16972f2eab873c274d7e0414537d7044fea58069e99fa95615b0dab44d7ae4"},"ros-humble-sdformat-urdf-1.0.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libsdformat12 >=12.6.0,<13.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","urdfdom_headers"],"build":"py310h5aa156f_3","timestamp":1675649932319,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17f2d309af19dd77c96c5badee0fe68b","name":"ros-humble-sdformat-urdf","requires":[],"size":88433,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b28d749135e649ff7312f86dc1ac5e1ab89f503fc0c445bcc7c0e24819f8f0db"},"ros-humble-ament-cmake-clang-format-0.12.4-py39he251886_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=13.0.1","python","python_abi 3.9.*","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39he251886_1","timestamp":1670448786147,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"88913e93c2c9d74136b7656505863b6e","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":415699,"version":"0.12.4","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8413552916116d072e3a1859dc9a5c94c0e03e7d7ff65c72cb5bad29fab45db"},"ros-humble-ament-cmake-clang-format-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540816788,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0d98f53906968d8ace6c4bc81828b7ed","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":10556,"version":"0.12.4","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8463f169e7bee9d767192e84714fa1cde5a69adc4c0f42b2c83d0c93a74297b8"},"ros-humble-ament-cmake-clang-format-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641424822,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b790ae4e531378f1edbfe775fbc5bbb","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":11833,"version":"0.12.5","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caa307374cd1ed245dbd6b079e2a8ec03a2467cbe7a1e0429a22e67a4f5073fc"},"ros-humble-octomap-1.9.8-h610bb81_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["octomap 1.9.*"],"build":"h610bb81_2","timestamp":1670535633621,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa74d672b82a5d0b06af8a8f90d420b7","name":"ros-humble-octomap","requires":[],"size":2870,"version":"1.9.8","binstar":{"package_id":"639258fd2dd70620554cbdaa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78fd073421e19958171cc1f6c3ab8deabf03f3b7d7e36acd6d09e3d9e9e053ed"},"ros-humble-ament-cmake-core-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","cmake","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-package","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670535744266,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cd7e76f01c06f3102c0a4e0c0ed14a3b","name":"ros-humble-ament-cmake-core","requires":[],"size":30583,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c253eabe1625938eee46db8e60cbd07898af45a3a69eac0b3216cdcf3b10643f"},"ros-humble-ament-cmake-core-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-package","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675630900922,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5865d98fb1753dc1f33e4c2fc86a4b02","name":"ros-humble-ament-cmake-core","requires":[],"size":33987,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cedaeddfc5d2c450bb2f48ce6b109ea0a68a43390fa4ff730927a6036b9c0b0"},"ros-humble-ament-package-0.14.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","importlib_resources","libcxx >=14.0.6","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","setuptools"],"build":"py310h61b69e1_2","timestamp":1670535704722,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e1c41fb4fe4dcf8830239bb15b3fbd05","name":"ros-humble-ament-package","requires":[],"size":31831,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7404f63eea3eecf6e4397a520584a54885b19d8cfaae60fbfee148dd6cdc8c1"},"ros-humble-ament-package-0.14.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","importlib_resources","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","setuptools"],"build":"py310h5aa156f_3","timestamp":1675630854185,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"65441eefdfe52824d19ebba3638ba981","name":"ros-humble-ament-package","requires":[],"size":37508,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bec700866b0e02b72255c8f594555bd9e6f6f6484a08ab00d6217b2ad8ae7a07"},"ros2-distro-mutex-0.2.0-humble.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","ogre 1.12.*","libpqxx 6.*","setuptools 61.0.0*"],"build_number":0,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":[],"build":"humble","timestamp":1670535606854,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6eebb07313a613fced0de6e493b8da8e","name":"ros2-distro-mutex","requires":[],"size":3351,"version":"0.2.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a827db2b0b42a9c260bc561768e2bf75d5dfbf0cfda306ee27cdf8d4701fe1a4"},"ros2-distro-mutex-0.3.0-humble.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","libpqxx 6.*","setuptools 61.0.0*"],"build_number":0,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":[],"build":"humble","timestamp":1675630776261,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a4c9031551e0341f2224c74d26092a8d","name":"ros2-distro-mutex","requires":[],"size":3538,"version":"0.3.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"454800e8892fd51cd3733341a5b50523d1f39d60713e3c5ff75830e89a9613e2"},"ros-humble-ros-workspace-1.0.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1671188833920,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"206e9b4549045ab78efa896f0779aff6","name":"ros-humble-ros-workspace","requires":[],"size":26026,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43647bbab6fc562bb862ec03815778742c273047351474e93d407f923c1373c7"},"ros-humble-ros-workspace-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675631554584,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b48542a5b4100eee405f3c5cb7f19ede","name":"ros-humble-ros-workspace","requires":[],"size":26851,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8953e5ef0f5073c5aa5fef7b2217398a4837dbcc43e67d7e68715c2e7b9336a"},"ros-humble-ros-environment-3.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536012978,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f73e8180b8a5ccdf857b4ee945c133f4","name":"ros-humble-ros-environment","requires":[],"size":9602,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"803994b493bf189efc9e8cc070e29a1e068be772bed8566f2c16d2178c2235eb"},"ros-humble-ros-environment-3.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675631606977,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f68feb06ce7e48cbf626381cdfb60d42","name":"ros-humble-ros-environment","requires":[],"size":10725,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a86931e120317ff68b12ea045e71ec62badc942090598d08bcc86dff5b9f38d0"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536588873,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7124b6b7d107cb4485711a91ac01a60e","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":12291,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ea2f3a1be0c951517d6581123d45cc4677a58e4d7388259c89351e29dcd0b8a"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633074002,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5bfe6895ef28bc923d507fe5c41cb974","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":13487,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1b20906a31bc2ae69f4a4fc6aa59f28b5d86824b98c5e794fa0d9881531fdc4"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536680353,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4733dfd5b8114f28c27f30c5ee169b8c","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":10211,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0736690c17767ae153490083f6417ace27b267dc00efbfe1d7c665e8b05179ea"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633174581,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c95d1b0016f8d9ebcfddb7de03985694","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":11410,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a66352083fe1b25849d11bfdb2cfd904b06bde8755c03e29d3f1e952c2f2a62"},"ros-humble-ament-cmake-version-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536633705,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de07839b9e0b9727f5e6c7369a6f74f0","name":"ros-humble-ament-cmake-version","requires":[],"size":9995,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"027913031746433749942489474ae474ad0a4839939676d423851526228c4700"},"ros-humble-ament-cmake-version-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633126768,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d3a8314e3638a5b84bf2d6914ed751a7","name":"ros-humble-ament-cmake-version","requires":[],"size":11200,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e938984b29e05aa228e1fa6408265bc856d3bd2b0cbbe0fac0eb5c928d9ee9d7"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536776002,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b47ac8c5e62da2ec163a809382a20289","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":10282,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e05c5319c756519d2203c14314c5c526035cacd390fa6db1d3c5a48c2679139b"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633274256,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13a191e15c40309020098bf682f2cdec","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":11479,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94db3499542bbf8854de1ebc2bdcede600d21ddf06a1b13339ede9aa5a271024"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536727471,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1d0d83d59a3dbdb41261f5475887c06d","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":10624,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"578a7d17e1c5f3fd46c265c9a2365c79fb6c91375e7c523272eafcf3959d181e"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633225459,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e816e171ed89699ee0e19f1cc39bd25d","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":11782,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"974261561f3dc316cec096be9180443f7acd6971a10cb85b96c04827d6f18f6f"},"ros-humble-osrf-pycommon-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536413213,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"32844cca3767dc320017b49b9622aa6b","name":"ros-humble-osrf-pycommon","requires":[],"size":48260,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7627047ae13ff4f815610752f6ce7d5465acbafd972f492b46952f0ae1df2c31"},"ros-humble-osrf-pycommon-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633788395,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"df50849d872414a5278fee52658b5bd2","name":"ros-humble-osrf-pycommon","requires":[],"size":65027,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e06b79bcc50c9ff0967322b1d6a5d5e0bc383700f199271b71857e7bfe11afd"},"ros-humble-iceoryx-hoofs-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536355804,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c6c2c0921ace8cb1ebace357796763ac","name":"ros-humble-iceoryx-hoofs","requires":[],"size":258027,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c51815510ec7cf43ee9b458c6c26d33119316958bfa0062aa2dd837e5cb0d0c0"},"ros-humble-iceoryx-hoofs-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675634309461,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8007173244bc8470fbb759885328d3c4","name":"ros-humble-iceoryx-hoofs","requires":[],"size":259052,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61f6935e34fe6877a81eb3614dc71b5820abe0dc0c40d62280f2327fd935cab8"},"ros-humble-google-benchmark-vendor-0.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","benchmark","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536449336,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"297581a37a404bbbba07bd77f61e9a4a","name":"ros-humble-google-benchmark-vendor","requires":[],"size":6858,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e579aa107442b6c644b7b87722575b06a3c235bc4dd612414717c2c3b572e45c"},"ros-humble-google-benchmark-vendor-0.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","benchmark","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633837544,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c0c92df4a6b3a066c7c44277a3a7692","name":"ros-humble-google-benchmark-vendor","requires":[],"size":8100,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c71af700e0eb5ccb3c957224f5d5b38d0f096d9370fc33d0763a0a3a815db20"},"ros-humble-ruckig-0.6.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536465713,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"69b37a11de391aa3489d78d6184fe00e","name":"ros-humble-ruckig","requires":[],"size":71856,"version":"0.6.3","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80b48938bbd52e83785299b44ee95e946594a07ff241659d35d2cad86528e1e1"},"ros-humble-ruckig-0.9.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675634468944,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9f8576a6585ebfac58652fd3797d55ce","name":"ros-humble-ruckig","requires":[],"size":74334,"version":"0.9.2","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7201655083259620ad0a41b4824f7447979111ef4fa48e6d78444b22e7de7a87"},"ros-humble-ament-pycodestyle-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pycodestyle","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536353615,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"054d8142ec1676f758f658a3d7d3a986","name":"ros-humble-ament-pycodestyle","requires":[],"size":11868,"version":"0.12.4","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17718a11737fe948e3e392578a7cad65fd986ca43d6576302432cb79cbb13bd8"},"ros-humble-ament-pycodestyle-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pycodestyle","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633701398,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b9d6dc737806780e7e4d2c04dccddf26","name":"ros-humble-ament-pycodestyle","requires":[],"size":16194,"version":"0.12.5","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48afed183a874ae176a9219d26ec0c80858b9e6cf0e3369219b8940e88033162"},"ros-humble-test-interface-files-0.9.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536216242,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"767b80d0ac26db031a9921b4aff966db","name":"ros-humble-test-interface-files","requires":[],"size":12191,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14b99d88f7e70d5c9005a202688744a9601aae407a09f2b7d57797a70954d5c7"},"ros-humble-test-interface-files-0.9.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675634149117,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"304a73e4a6851aaa5dedd0be352b14a0","name":"ros-humble-test-interface-files","requires":[],"size":13379,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55efadaed1e77b40ad02fd198935ff1fd6716f7778b7ce9dc51dbb2721e7c150"},"ros-humble-ament-cppcheck-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cppcheck","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536384296,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5801925853690b1e2998b29bb1a975a3","name":"ros-humble-ament-cppcheck","requires":[],"size":15200,"version":"0.12.4","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"500ead198458662c904e2c784a400262db6c8b9b9bf790b75ead8d30cbc9a140"},"ros-humble-ament-cppcheck-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cppcheck","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633744363,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5d783f9dfab5227fe5dd7bf3954cbbd3","name":"ros-humble-ament-cppcheck","requires":[],"size":22157,"version":"0.12.5","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bbf1727b3832beffa5a63b9ad3908ed15a8505727f736834569ec3970189572"},"ros-humble-urdfdom-headers-1.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536388521,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"67f7b852c5f05c6d0489d759ac4cc127","name":"ros-humble-urdfdom-headers","requires":[],"size":18792,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08ef355cc98da464e34258e66697c0dfa45d3589037d1818be63a6716c37fb66"},"ros-humble-urdfdom-headers-1.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675634354846,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b6370e173582154aeb97b2a40e94fd0b","name":"ros-humble-urdfdom-headers","requires":[],"size":20147,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31355277e0ca5016f620a92a0894ff6ec568d3478246fed8f49d66a43e5244f4"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536523741,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4065e8d54c519792077b83b8d3e7518c","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4318817,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbf75641cf38035102bd939da124cd707a96ef4e4045969df5fa74d44eba40b7"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675633923854,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c550ea513532f71d582a64e4e996ab6a","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4319896,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c27ab5eaaf5e74595ba58edbf0185ec0c19d620a642d5dd05b0243d0ffd4393"},"ros-humble-fastcdr-1.0.24-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536266805,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1f2decc5b6cd6d2073c8e5a866d9556d","name":"ros-humble-fastcdr","requires":[],"size":51279,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cad164502e358e9e675d19b0693f047d14560a48204595ed01ae21fa6aecd0a7"},"ros-humble-fastcdr-1.0.24-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675634215116,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e8eed9bcb8198833a8697209ef60f358","name":"ros-humble-fastcdr","requires":[],"size":52707,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b63e19d835953e132bc4eeb7ff5fe914c02c5dccf99b2955717f78e1d3b93489"},"ros-humble-ament-lint-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536415373,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6452e2f4a8eea567262145859653ef73","name":"ros-humble-ament-lint","requires":[],"size":7314,"version":"0.12.4","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07d3147abe8572c339c26ab2b256bde6c7fa26f886900fa18f83799bba746887"},"ros-humble-ament-lint-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675632417387,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d87909a5404d7151c9ef26c326ff9810","name":"ros-humble-ament-lint","requires":[],"size":8146,"version":"0.12.5","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb34fe756eb88320621304430cb738a4e72022e42dc078af6642a4495fdf92a2"},"ros-humble-ament-cmake-libraries-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536515154,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de617256079008b5baa8b9e6fcd41550","name":"ros-humble-ament-cmake-libraries","requires":[],"size":10520,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"199181dd37f04ea5308f64f22c7ac81c20ec4e70ee35f14f0b252bd9ad30df46"},"ros-humble-ament-cmake-libraries-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675632571743,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c75185b7733e07db5c4071dc61d8c88d","name":"ros-humble-ament-cmake-libraries","requires":[],"size":11711,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d58633c66827b1594e29edd8c9c2a04bb6790e9c35e09e14b68a192e54afe33"},"ros-humble-ament-cmake-python-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536449123,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5a5c6694b7c72af5435b63960fc7d750","name":"ros-humble-ament-cmake-python","requires":[],"size":12426,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a96afc7d450df04e3a34a1392f02b1f842a67465c49661ab28c7490d5134f0aa"},"ros-humble-ament-cmake-python-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675632473586,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17f299143d727ddc5c31d4b7571818ef","name":"ros-humble-ament-cmake-python","requires":[],"size":13688,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62855206e385e9df001a4013c43983b4e67e68adc0bb7dc4ce161d969aab2f06"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536548608,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1bd43364fdae9d09a084d3efca290bf4","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":10122,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e147dea466b12253dedb4f0aba8bf7eae9b9fd83e34377ed024f68fafa4653ab"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675632618971,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5d3ac9a20000fd246b743a8b59baeffc","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":11345,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2793eb35f6646e8371dbffa040d6baac957d9fb2dd78fb91b65a3cb06dba60a6"},"ros-humble-gtest-vendor-1.10.9004-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670536480633,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea79b56b9a00da2789f9e20b24e61bf5","name":"ros-humble-gtest-vendor","requires":[],"size":183356,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01806aed89ee0843b08704ac07ba8428b0cacf688f9a4bcf00db83732f367c65"},"ros-humble-gtest-vendor-1.10.9004-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675632519526,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"81a19a1f2581c007cf78880741cfe3f7","name":"ros-humble-gtest-vendor","requires":[],"size":184899,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"284d10411e6aac12813301861df3f3f96bfd1b0245beed7b755d2f2b75e1a111"},"ros-humble-ompl-1.5.2-py310h825cd0f_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","eigen","flann","libcxx >=14.0.6","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h825cd0f_2","timestamp":1670537043421,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c53ff761dd5d32a6720f43ddb9e8039e","name":"ros-humble-ompl","requires":[],"size":21736,"version":"1.5.2","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e25b52f34a989922ad2df3426d9bf076cc11844164511808e5660a0b45e2234"},"ros-humble-ompl-1.6.0-py310hbbec302_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hbbec302_3","timestamp":1675635695218,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4e546559ffcaa591bfe9759b07c0d83b","name":"ros-humble-ompl","requires":[],"size":2130394,"version":"1.6.0","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d9e77e84736588c2bd8eb7409c8a28bf644762c39c26642e4199033d97109d8"},"ros-humble-sdformat-test-files-1.0.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537085509,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"839e1f8c470d264f119cbd2b08d91105","name":"ros-humble-sdformat-test-files","requires":[],"size":101031,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0be3d5f490dbfc342d0f27c7ab1aa98b144404345863beea2811af6a5c8e11c3"},"ros-humble-sdformat-test-files-1.0.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675635772611,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3ce316fa1c2c78fa5eab7861ed127762","name":"ros-humble-sdformat-test-files","requires":[],"size":102470,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d64ebb008eb36f124bb4a75550d33e441184cda192eb8b136563d3ea9ed42b56"},"ros-humble-ament-cmake-test-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537326215,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5d2b0fee2b7ea18d49c992e76cd3b9e6","name":"ros-humble-ament-cmake-test","requires":[],"size":20602,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e173fd36b6e6fcef7a63b1b875cb0af4fc610147046e3ffdb1abafb17f5214e8"},"ros-humble-ament-cmake-test-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636320358,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ef41a22ef0db40b5dc00831fbda145db","name":"ros-humble-ament-cmake-test","requires":[],"size":29444,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4de255d057f7adeb319e4aadc94d06cab42c2b3585f265a4126f9b58aeafd7ae"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537388210,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d04ffd6566b42198cf58d19aaf87b372","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":10715,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f60176151d0c8fb09c735a2d3fc765e31545b492a0e7ff5929bd5d85f3bbd340"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636426866,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cc01bef1f92d676da963e4200d8eaf9c","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":11915,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a33d283838376620fd28ec55af29c5e7b488253e0918b9b87fd4a3b908e5d19"},"ros-humble-ament-flake8-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","flake8","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537291833,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"28f39cd1d63ca61153b9e94154fc01c5","name":"ros-humble-ament-flake8","requires":[],"size":14588,"version":"0.12.4","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02a680fe7aa118bd3ca3a24828c6a32648b3a25954af1e73ea9c50f7b2f5e7f7"},"ros-humble-ament-flake8-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","flake8","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636182630,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6aa18446778108c2e9650d0acac09d53","name":"ros-humble-ament-flake8","requires":[],"size":21174,"version":"0.12.5","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be5c124041fedef3ade861a8ae302e3d2a9f9695f505fe6d53965507b979d69b"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537418694,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7d26cacd83b0546b80e735dd52e5aeb3","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":10755,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c67d0fb168adc1c6e1ab3f9a61ac88fe921b3e05b0a23526e0feac1ed080a71"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636481177,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d26fb318762a80733b966c5b8156e078","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":11976,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a40a58cd641120fe0f1db3c67c354d8409ccba7dd53a4bf45ede4d17cfcf873a"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537356264,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"531270d4cf3a5a0f3b864af4e39adda3","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":11625,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a0b9d7435a40c8cfa39cd267c7eb9cc118dd22fc4cef7114cb0b2eb6db10f3d"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636372646,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f60562334698547bc3e4a6966db8a11","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":12845,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17c9fc875d2ae9defa7b8e04a5b707f20b18354af1b9912c35a5f3a322ecdb42"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537397193,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a20fd0390593b2c6a0952ca569969e05","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":11055,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed63f64688fffb715835b2314d403bdee10fd0b304d7232b67898890f85a8dca"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636282207,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fb61a218f1d8a91bfb503e278647732b","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":12240,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa2071b901e918a231404685231c2d5d607ab0d82fb3bb04ca3313967a4b5a51"},"ros-humble-iceoryx-posh-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537673396,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"26d754e01301d5c528360e76da4e4465","name":"ros-humble-iceoryx-posh","requires":[],"size":450193,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dccf7c107701ad3fe163da0aae90b46c8f8a7e9b556f0e4c6b316f71d76fd316"},"ros-humble-iceoryx-posh-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636539972,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"53f5c7554ea2f81c58740da2a3da7d8a","name":"ros-humble-iceoryx-posh","requires":[],"size":454139,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b17e004f6dc200e00bc3a37d5636c3d23f2a281448a56c62491fb980a577304"},"ros-humble-gmock-vendor-1.10.9004-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537442767,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1b8f55eb382df0fe196f1d0757efcbeb","name":"ros-humble-gmock-vendor","requires":[],"size":97914,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a13f1b3939bcf70cb3662c0cd821ed6e6379029175a26d34325a3167c986e987"},"ros-humble-gmock-vendor-1.10.9004-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636330534,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a8658a41d7fc0bffb42cdef5a59e9057","name":"ros-humble-gmock-vendor","requires":[],"size":99442,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d082823d09940d99216c7ffd4f94e504089f0c0783089b24025ba11765fdb2b5"},"ros-humble-ament-lint-auto-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537924005,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ba408d1520dd3646d804ae1753db60ce","name":"ros-humble-ament-lint-auto","requires":[],"size":10183,"version":"0.12.4","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8911a02025eda435133dd6864ae757400964686e9751ab4ad5e2ff6bd87285c8"},"ros-humble-ament-lint-auto-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637044794,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2dd19235fd2fab38c25131e003e58602","name":"ros-humble-ament-lint-auto","requires":[],"size":11401,"version":"0.12.5","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b63e0601bdf95f59b16778225a951582ee135862bd78148104e4b2eecceb682e"},"ros-humble-ament-pep257-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pydocstyle","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537859984,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c0577aa5dec1dc662cfd37ebf715ec99","name":"ros-humble-ament-pep257","requires":[],"size":13614,"version":"0.12.4","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d888bab3c9416b5250d9ba84d54b95805fb6bb92d5942394ccef2b28ed71302"},"ros-humble-ament-pep257-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pydocstyle","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636942796,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2d5c50d82c978f60814158f1bbf468d1","name":"ros-humble-ament-pep257","requires":[],"size":19272,"version":"0.12.5","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a036741dd5212141342769632b8f4b131e2e1bc15e906f34c2a5b2fcc77b50b"},"ros-humble-ament-cmake-pytest-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pytest","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537987363,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b2602720f4096ab3465c01877739fc37","name":"ros-humble-ament-cmake-pytest","requires":[],"size":12066,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d3508dbc86590c04bdc2b06ac3a70729b693f8ad150aec85c8d58ed36f8acb1"},"ros-humble-ament-cmake-pytest-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637149280,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8b9abcee0a3ae2a551a5310b51515bd0","name":"ros-humble-ament-cmake-pytest","requires":[],"size":13356,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbc61511e65043542d04c3dcd7ab68afcfb7ff1d092b108cf2e2a20b1f418b00"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537955119,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1ab81db1cca916a5e8185be6b0efdf2d","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":18327,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7843ef85b41cacb12c02be1f579724725bcd518198915f7e418def9d02763e2d"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637098187,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"883aaa438c938e78867212b94efd04d9","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":23382,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"364384544ddd1d73fd6dea4693bcc107dbf5b8d1a4252be27740d9034d3f4f51"},"ros-humble-ament-cmake-gtest-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gtest","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537894454,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"687c5928d9b21d276f521e9419e82557","name":"ros-humble-ament-cmake-gtest","requires":[],"size":12679,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e405dfd14785bc1e1c6643c96ceb309c10e368348c819b8256497f53b7d5ef73"},"ros-humble-ament-cmake-gtest-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gtest","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636997178,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"348055362095276530242a83cc4d2329","name":"ros-humble-ament-cmake-gtest","requires":[],"size":13931,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ec2a4f1ca2b1be34b99e27625ceb83691f1870eb1a619e3c590960e60d4cfaf"},"ros-humble-iceoryx-binding-c-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670537982541,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f113b21aa780e3df381a2667c66377dc","name":"ros-humble-iceoryx-binding-c","requires":[],"size":74125,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"659e7246853999a6454db3a7a26b65398b51a67e21e1864f071dd2e07648e8ef"},"ros-humble-iceoryx-binding-c-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675636903104,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a4443b069256b4d302cad0ecde6ad637","name":"ros-humble-iceoryx-binding-c","requires":[],"size":75651,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47b6ba555aa314eaf1e2b901847de74a914a485cfdacfc315636a2265b50ae26"},"ros-humble-ament-mypy-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","mypy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538041699,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cf2d2b060336f6ce42aa32d903851574","name":"ros-humble-ament-mypy","requires":[],"size":13324,"version":"0.12.4","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9460049122f4f3aec03aceff63bf7e56fbae85cc9b373a45f7a17007538e30b2"},"ros-humble-ament-mypy-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","mypy","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637026486,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2ed2d35572f342c3c466fb141f4608eb","name":"ros-humble-ament-mypy","requires":[],"size":19201,"version":"0.12.5","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a5cfaed5e9bd1ff227e78d06c3df1be1a7096319caa8630a7701bfe604f5d96"},"ros-humble-cyclonedds-0.9.1-py310h74538a1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h74538a1_2","timestamp":1670538529546,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1b02088b3553cb8b2e8592fee48b4681","name":"ros-humble-cyclonedds","requires":[],"size":1037581,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27d751a3c73e8d744f01b1c3d9f418d71dc175617276ab876367dbb088dad88d"},"ros-humble-cyclonedds-0.9.1-py310hc61e2d5_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc61e2d5_3","timestamp":1675859383878,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e478df185312f9144909cb5e1f0328d","name":"ros-humble-cyclonedds","requires":[],"size":1042321,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"743a91d0f4cac1133c487d55b05703ccb70984014ad770fb65ed49614d39320b"},"ros-humble-ament-cmake-gmock-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gmock","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538398079,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b417ce8bfaa17a099dbbf0fc0b7350c9","name":"ros-humble-ament-cmake-gmock","requires":[],"size":12089,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ba477db4ae541285e2afe8dbe2f59335211e4d6b0973169e31ab2de43b0e541"},"ros-humble-ament-cmake-gmock-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gmock","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637620515,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"05baf9dce20e256d385d055b6f9272e8","name":"ros-humble-ament-cmake-gmock","requires":[],"size":13364,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6db46a212a089646cdc60ddc960c31b6bc70b64e7c1243b5dbc23bdae36a4a16"},"ros-humble-ament-copyright-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538327433,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"82d6ad606ca43cacce1c85945418b442","name":"ros-humble-ament-copyright","requires":[],"size":46888,"version":"0.12.4","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15e8016afbfae8b6f23bb18af0a61b01472b98504a27f48fc2c9da434689348b"},"ros-humble-ament-copyright-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637370180,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d900daeeb10119b0d780c92fc34786ee","name":"ros-humble-ament-copyright","requires":[],"size":61539,"version":"0.12.5","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b080e8cd56157b41a2ad15252c03cae4df2bee82ad14822d54bee29acd662e82"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538364172,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"124cb8a647ef3c23e350128670047d47","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":12616,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59faf33c665651dcd141f4b67774635d85f63574cffdf4d14091ac16869b6636"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675637489506,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0b322e4ae12bf451d99ec154308c2b8e","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":13869,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f1f64649f7df1b3737980149166aedd80aeb4e57fe2b7ee32858de96da69bad"},"ros-humble-domain-coordinator-0.10.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538756043,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d206e46bc7020befac435fc241adb278","name":"ros-humble-domain-coordinator","requires":[],"size":8808,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7362aebf3e8112976c6d68362a5882ff773b88c6c7465e3126397a2a21e7ca82"},"ros-humble-domain-coordinator-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638042166,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4ecba4acf7dc030d6e38ece009d3b8bb","name":"ros-humble-domain-coordinator","requires":[],"size":10596,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5605cf49765ff1881cc928220012b7d8d65217e2bac089dedd4f7b551c05c3fb"},"ros-humble-ament-clang-format-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","clang-format","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538828386,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c8d5aaad1ed4dccd17a9b343bf849d9f","name":"ros-humble-ament-clang-format","requires":[],"size":15455,"version":"0.12.4","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d3b2112bf0509984bdce1935c476521f6e64abc888eb7cddecd3342a2d4aa2a"},"ros-humble-ament-clang-format-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","clang-format","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638289163,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"123c9b672938897c842dd636705aaccc","name":"ros-humble-ament-clang-format","requires":[],"size":23753,"version":"0.12.5","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17eb2bafeae7e53825600c3a7e6da229764c3868fc53794f6031cf82a4c9ec68"},"ros-humble-generate-parameter-library-py-0.3.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","jinja2","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","typeguard"],"build":"py310h61b69e1_2","timestamp":1670538792753,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c0d39d37ddc5ed71825137f9e4451e5f","name":"ros-humble-generate-parameter-library-py","requires":[],"size":27398,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcc08485d8abd03f55cd896921202a267a74412b8821c35e98bc3d259a2dd8ec"},"ros-humble-generate-parameter-library-py-0.3.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","jinja2","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","typeguard"],"build":"py310h5aa156f_3","timestamp":1675638133364,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"502bb03d4c659683a373bc35624eaf39","name":"ros-humble-generate-parameter-library-py","requires":[],"size":43131,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63a26054ee8c4c8e3a24a2e59d98a5db5699f2d4f1067afd59ec389a40bf5f41"},"ros-humble-ament-cpplint-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538871452,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cd2f53c22955636494e4dd805065563b","name":"ros-humble-ament-cpplint","requires":[],"size":118640,"version":"0.12.4","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11d81ba798e6a2071fa66d4ef4c83e3c229c5cd505c686334e718ecb4443c0ed"},"ros-humble-ament-cpplint-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638401632,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cc2d3c43f99abccb57c0970c5c3819f6","name":"ros-humble-ament-cpplint","requires":[],"size":188389,"version":"0.12.5","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7558852ba961a93b1db18b51db1c316aacfc6f619318e9b6c7aaef2e36f562f"},"ros-humble-ament-xmllint-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libxml2","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538836343,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"817c042fc6df6740596227faf1827a97","name":"ros-humble-ament-xmllint","requires":[],"size":14017,"version":"0.12.4","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f587f7ddb449e10ceaf35b803322fb856455ae51f4d4990c11d020f2e60c3d1"},"ros-humble-ament-xmllint-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libxml2","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638353736,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e8dfd0461836acdaf4aa4332c4020b3","name":"ros-humble-ament-xmllint","requires":[],"size":20187,"version":"0.12.5","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f76a8e108eb3413ce026e660824b3223528e668c4deaf278d8ead1a4068b0cb9"},"ros-humble-ament-cmake-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538800052,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0e9cd8f584a92b0c8eaa79451d0204a2","name":"ros-humble-ament-cmake","requires":[],"size":10194,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78dc6cb333ca6aeed6e1fecc15b3cf1fac14505f0c656ae76b50a222e82b1033"},"ros-humble-ament-cmake-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638306527,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"18d51c2edf8fbf1962fb417d3939939a","name":"ros-humble-ament-cmake","requires":[],"size":11423,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4140da58acad1e85ae65c22d88c785571ba8ffd5d6f4772022a29e6f84bf7407"},"ros-humble-ament-index-python-1.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538907300,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6e89275ad2739c5234221995f6db5c98","name":"ros-humble-ament-index-python","requires":[],"size":15349,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b7b5fac047879d02f1eea782535a9a774a7dfe0aacd9c964e4e743e1fb8e4a3"},"ros-humble-ament-index-python-1.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638450287,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4aa1b95b4e9ca85cc48acbd8fe7cb138","name":"ros-humble-ament-index-python","requires":[],"size":21090,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18f4af07bd7a3997db04a33e77e481d55cd236722eddcc8d9fac842763712d90"},"ros-humble-ament-lint-cmake-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670538760508,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0ccb41461c1881f13b616f0678d5ff1c","name":"ros-humble-ament-lint-cmake","requires":[],"size":22263,"version":"0.12.4","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"662eae7fad54cb59c0042fce1e58bd681b9f5c2b415d028fd7c3fdfce39a6aac"},"ros-humble-ament-lint-cmake-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638239690,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"98c4e0498520dafc4159b0a3a24e6a18","name":"ros-humble-ament-lint-cmake","requires":[],"size":35758,"version":"0.12.5","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fac07a3fecb9ed339185ef8c30999d0bf5ffd41af256a5f440cb49a5b5b99f6f"},"ros-humble-tinyxml-vendor-0.8.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310h61b69e1_2","timestamp":1670539242286,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de1d860d87c7dada3f7caa46fcfae9c9","name":"ros-humble-tinyxml-vendor","requires":[],"size":10386,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43a3bc306489650f3b4ed1245495b93579ce765bb200e48e5875f6ba0b2f9e5f"},"ros-humble-tinyxml-vendor-0.8.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h5aa156f_3","timestamp":1675638841453,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ef03cc922308ea3de2e3a3dba31334fb","name":"ros-humble-tinyxml-vendor","requires":[],"size":11651,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8d5b0ba1ec6ec505d00c2fea7d21a474216272bade34f9010ff7e85afb322d0"},"ros-humble-eigen-stl-containers-1.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539393423,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"357409ae4ec519834a8e7d300e0b1cc3","name":"ros-humble-eigen-stl-containers","requires":[],"size":11170,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe74daf60d3da74a35176bc09b9092aa2ba3835f1bd586cd06c7a010b374a245"},"ros-humble-eigen-stl-containers-1.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638970694,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fc5b21988ad3efae51a3ff9ae55f1034","name":"ros-humble-eigen-stl-containers","requires":[],"size":12477,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54925aed2720e92ff18e6a4a529feac5fdc21217169ca0a0a6fb500040a6efb3"},"ros-humble-shared-queues-vendor-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539431671,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c9b5154331849979e5999e5db8f3fe2","name":"ros-humble-shared-queues-vendor","requires":[],"size":50981,"version":"0.15.3","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdcb467044000b626349504fb7b883606ec8554a16887f1b51886ed7d50a4ad7"},"ros-humble-shared-queues-vendor-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639031923,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dad43fe8c8d29ad38602e61275639693","name":"ros-humble-shared-queues-vendor","requires":[],"size":52189,"version":"0.15.4","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"debb4e0fc9354946de864ae9b44ea73a104000642c2bfd8c0b976022800e0c1f"},"ros-humble-pybind11-vendor-2.4.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pybind11","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539189921,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c7add89729fbc870f93c0b77af03580","name":"ros-humble-pybind11-vendor","requires":[],"size":9042,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b821389fa77fa85586251a086346ef40b9c46ad8f5ef54c27503055fa15928c"},"ros-humble-pybind11-vendor-2.4.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pybind11","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638696143,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7cf0403204c877549bd8bbb9da16626e","name":"ros-humble-pybind11-vendor","requires":[],"size":10331,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8db5bfa167a495682e0c02e10d2595246d372a88178c642b4a04b1a3c457c54"},"ros-humble-yaml-cpp-vendor-8.0.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h61b69e1_2","timestamp":1670539339783,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"84465b188d28b0ab806f19114d2c83cb","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":9318,"version":"8.0.1","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de2f724f8c240ca0557384f65a78578d6918ac1d24c58f1a4c0fc608adb88a75"},"ros-humble-yaml-cpp-vendor-8.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h5aa156f_3","timestamp":1675639027266,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9d07c1c2450151fb22939030fbcd9c72","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":10549,"version":"8.0.2","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb704bf3dca29d2f1ea48cb858ead101b97093389a3d774912ed1d01bb40f6d2"},"ros-humble-libcurl-vendor-3.1.0-py310h616be9d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcurl >=7.86.0,<8.0a0","libcxx >=14.0.6","pkg-config","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h616be9d_2","timestamp":1670539393389,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"68840aaf7792b6c2859a7c2f47877a39","name":"ros-humble-libcurl-vendor","requires":[],"size":9828,"version":"3.1.0","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d4538be23c7ef178239e3e833261aa56ddde2f08744346b00defadde12d14fc"},"ros-humble-libcurl-vendor-3.1.1-py310hed2bc0c_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcurl >=7.87.0,<8.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pkg-config","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hed2bc0c_3","timestamp":1675639077190,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e63d586630b8740358d93d3384a58ffc","name":"ros-humble-libcurl-vendor","requires":[],"size":11092,"version":"3.1.1","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca5e969013bd928a80423113635914da0c3db9f2c852ee8edebe63c21c97c3b0"},"ros-humble-tinyxml2-vendor-0.7.5-py310h8d82ac8_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h8d82ac8_2","timestamp":1670539289649,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0289f0c94f73343f9937af9c36a1a50b","name":"ros-humble-tinyxml2-vendor","requires":[],"size":10582,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68dc91a4df7962944924d0827bcf55722ffc10192f5a8381bb76a0fdedb0cde9"},"ros-humble-tinyxml2-vendor-0.7.5-py310h5699682_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h5699682_3","timestamp":1675638973754,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e7efec84e3786ed8a05f246861daa25","name":"ros-humble-tinyxml2-vendor","requires":[],"size":11815,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"934ea0c12d4898747b97a99a7f2b847c52947f95ffd4ddf9fc14e23c4d62036a"},"ros-humble-random-numbers-2.0.1-py310h849549e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h849549e_2","timestamp":1670539353393,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1e2989eeecb62539e631a5a3cbb4cd48","name":"ros-humble-random-numbers","requires":[],"size":30633,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7348f58ab9ba7efcb94eb414e016bde5963055421140bac35d4ac8c40ec4fa03"},"ros-humble-random-numbers-2.0.1-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1675638833183,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f011cd5ca11a1d0b7b7fcfe5d7017ff7","name":"ros-humble-random-numbers","requires":[],"size":31976,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14b99abe2705ef7e423026f1c93f7ceee6e83585f677534d50419321951100aa"},"ros-humble-tcb-span-1.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539498517,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b06ab842e7cca5b5dee39e1e5ac88912","name":"ros-humble-tcb-span","requires":[],"size":14244,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cadab9946b5da8c7b22375fdefa97ccf17579fd75f532e9801f1cbb40050400"},"ros-humble-tcb-span-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639133035,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3e9968b4f26eb6978b437d9aa8f703d0","name":"ros-humble-tcb-span","requires":[],"size":15556,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46ee181d7066e92e04671d4c847512edd209d11821c1feed3fdc6d9a9a69e86a"},"ros-humble-backward-ros-1.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539786636,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"961ee00f8945f8509c714964852ca798","name":"ros-humble-backward-ros","requires":[],"size":67270,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b85d71d8411b043487b19a308cf36a4ab9b75759b1268c311fdaadd4d4c0d52"},"ros-humble-backward-ros-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639126011,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5f93edaace461360e4d4917b2de7dac8","name":"ros-humble-backward-ros","requires":[],"size":68702,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61138d6da9a575a9e34176db529d9a25c2a8db147e10a8d82025df13375fff6c"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539727635,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9d0b33b45f4afe1ec28f25f347c635f1","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3799467,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fb92f3fd6e6a0bb951f00aa7ff562159262bf9a53cc42d9b5b6b8ece9aab0de"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639056256,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e558833c217e66a962259da8cf5d17db","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3801439,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1fc58c4beb36eed89eab140f728494eb5552a2ab40f3d4e0b45381b9d56518de"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539488981,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"57b0cc380dc09037c9e1703f0b7cdbf3","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25887315,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"623c3277ea74a7d481b533bc9694aaa6ddb53a6748e736fce7b95af53f2eb1cc"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639612207,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eda9bb4c17ac6a654a78fdaab0e28cc9","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25905926,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4091d4646d6de80a68bd418e1f947aed46bb586e3ebafc0f5ff3df1fcdb6710"},"ros-humble-sqlite3-vendor-0.15.3-py310h44a892d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libsqlite >=3.40.0,<4.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sqlite"],"build":"py310h44a892d_2","timestamp":1670539605664,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3678073ec735d745c74b7fd4f230c7e8","name":"ros-humble-sqlite3-vendor","requires":[],"size":10573,"version":"0.15.3","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0425bfd41c77df7bb281a6ec53b75aa81558f1773b7ba8d7091ac632c294903f"},"ros-humble-sqlite3-vendor-0.15.4-py310h44bd9f6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libsqlite >=3.40.0,<4.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sqlite"],"build":"py310h44bd9f6_3","timestamp":1675638890056,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a9b1a9d149fb6d821abccd30b8f72670","name":"ros-humble-sqlite3-vendor","requires":[],"size":11865,"version":"0.15.4","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"298207d24949f44629e4574017eaef5d49123799374465c77d0e8fecf1312381"},"ros-humble-zstd-vendor-0.15.3-py310h1122be7_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zstd >=1.5.2,<1.6.0a0"],"build":"py310h1122be7_2","timestamp":1670539547456,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"65dbc26fc60d914784f5f7523ee8ceb6","name":"ros-humble-zstd-vendor","requires":[],"size":9893,"version":"0.15.3","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1704849bcb2733e254561901c96fe114ee962c8d9151e5355bbf8a5ad4ea264"},"ros-humble-zstd-vendor-0.15.4-py310h7f7488f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zstd >=1.5.2,<1.6.0a0"],"build":"py310h7f7488f_3","timestamp":1675639688189,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d28c6dbd7a851a58f57951a15ca8345a","name":"ros-humble-zstd-vendor","requires":[],"size":11152,"version":"0.15.4","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c51dd0dc1af1fea3f11958b8b7f576039fe635a10a189db426391c7fe82b75d3"},"ros-humble-angles-1.15.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539452528,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"36018ca29f5c2241ff46915e053be5dc","name":"ros-humble-angles","requires":[],"size":18993,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db0b930c13529455a468f48f6be2b69f322de4068370ad4d9ca2362f27073b51"},"ros-humble-angles-1.15.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639560413,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f68cf78c2de4326e490516391f9e14a6","name":"ros-humble-angles","requires":[],"size":22960,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43287709342272bcdb71f7f8d9a4f9f442c4b32c560e1479cef275c4230f986d"},"ros-humble-xacro-2.0.8-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539690291,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"67967db4bc5fcf3cf415f3cc5850a586","name":"ros-humble-xacro","requires":[],"size":48166,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db5a2691eb776a7d4b8a0c6f05a657596b12c08810fdede0bd49f9f933fc191d"},"ros-humble-xacro-2.0.8-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639003748,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"32288b45112f2de17bc8b6340ad1a8cf","name":"ros-humble-xacro","requires":[],"size":78426,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"781e87958bd9aca20f615144daa8449bece58c822d5df679da872f7023257546"},"ros-humble-ament-cmake-auto-1.3.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539646653,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6eb3786944856e3e7e26419f014ac3bb","name":"ros-humble-ament-cmake-auto","requires":[],"size":13138,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d84e9384c3d30ea59a93fb1e31ed6be365842b446df787a53f045c58a4b1fbfe"},"ros-humble-ament-cmake-auto-1.3.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638943479,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"826a2323249609d66871922c4e4f3a05","name":"ros-humble-ament-cmake-auto","requires":[],"size":14510,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f165fc6cffe544f988dbf54701e208781455d9f66336f5f50220d133b4a9e3d6"},"ros-humble-ros2-control-test-assets-2.18.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539409006,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"841249e383f8f7f67ba52cb383734133","name":"ros-humble-ros2-control-test-assets","requires":[],"size":13618,"version":"2.18.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62baaa45f243ba58351c6d3817b85fc5e35c622847cb1a8ab63e8d166caf5444"},"ros-humble-ros2-control-test-assets-2.22.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639500323,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"790ed0acc9124998e736ef1c93461a4f","name":"ros-humble-ros2-control-test-assets","requires":[],"size":14841,"version":"2.22.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3024f24a5d25c1fffbe1d2e2c357c7b7b620377ef2ccbe120e81edcd0e04203"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539580437,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4cbd6f274b1ac8867035f0e76a4e9885","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":185612,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f72c4a71cabd217357084ac1fec81f4dacbc682f61c002401facf74a6b4dd5a"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639737404,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ef40a66d0ea9c5cb39a3c8e16cae8cb8","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":186441,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45abe128b0f007f6cc44fc6805ce50f213c37e062cdbd1cfc7871dbd7f586f9c"},"ros-humble-ament-cmake-lint-cmake-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539286461,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e79e8853c60f301ea36d91930b57393","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":10381,"version":"0.12.4","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b357d95e001da980b50b99e1f3d9d3eb0f770b18f8b4a36786a26f04689d5153"},"ros-humble-ament-cmake-lint-cmake-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675638902173,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"39ba2f41d4a14024d389d8e714c2f80f","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":11600,"version":"0.12.5","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10a1191dccb4e11ddfed75cb04fbc940c6ccfab22029e05538a9c838a1d14eff"},"ros-humble-rosidl-cli-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","argcomplete","importlib-metadata","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539420629,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fff754e09060ca7316110db19d912c60","name":"ros-humble-rosidl-cli","requires":[],"size":23507,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3d768f582c3470ae09308dc7baab4b1ddaa6ecd1a6dcccd695d2f23b67ff6fe"},"ros-humble-rosidl-cli-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","argcomplete","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639063257,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86967c21b1be5f30d6f6f23af824ba89","name":"ros-humble-rosidl-cli","requires":[],"size":33566,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5091f5bb44f92d28e94fc41feb40ba70b6fd4ec3925d6bb7e83b3319bebf1fc2"},"ros-humble-uncrustify-vendor-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310h61b69e1_2","timestamp":1670539346505,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d3edd15feb19959b4841d0d131373754","name":"ros-humble-uncrustify-vendor","requires":[],"size":9176,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4313984f41483120cbabc945fc3bf74f18846ebf8ec84a188530d4d1413fb72d"},"ros-humble-uncrustify-vendor-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310h5aa156f_3","timestamp":1675638963726,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"043e0ed4527b0221e143bf9223d39ed8","name":"ros-humble-uncrustify-vendor","requires":[],"size":10428,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99c42ae6c65e979e6940afc6580ba26da6284e97eca22dbafec3fe2045a8caa2"},"ros-humble-rpyutils-0.2.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539454647,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8f8ad2eab86c656bb2d1c61be53a36b5","name":"ros-humble-rpyutils","requires":[],"size":13423,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b76ccb6ec0e137b61a5db38d33c8a75c3cb35089a158688092b2d61aebe03fad"},"ros-humble-rpyutils-0.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639107708,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cda4ebf5a5545a51c253d2157c944cbf","name":"ros-humble-rpyutils","requires":[],"size":12450,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ec6700b0bb5adc54dc7778e6b1448d9ddfd4fcb8cf8481449b54e1e0b32c9b3"},"ros-humble-launch-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","lark-parser","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670539382993,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bbdec735d30db00d5be0d0ec18385f79","name":"ros-humble-launch","requires":[],"size":148095,"version":"1.0.3","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1aa79059285c8a8977874bffcf96871831519608bb6a8d331c3118ba7504211b"},"ros-humble-launch-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","lark-parser","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639015181,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f4eac88afcb4c0417d06ca3ebdbb9746","name":"ros-humble-launch","requires":[],"size":265668,"version":"1.0.4","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eea4a7cd7fe60a9875f2dc73154c9f73573bda0ac7ad93016a6a7c39dd5930ce"},"ros-humble-gazebo-dev-3.7.0-py310he1972f2_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gazebo >=11.12.0,<12.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1972f2_3","timestamp":1677541681199,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a9eb58ff10f8f62a3bead4f7dffe24cd","name":"ros-humble-gazebo-dev","requires":[],"size":13723,"version":"3.7.0","binstar":{"package_id":"639266cb54e9ace854c377fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb759398945d605b6184e7fcbfccb1afcff9a4210dba95900cfe0166d057da30"},"ros-humble-dynamixel-sdk-3.7.60-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678330998605,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"15260c04bb3d02b3470fc6a51417f136","name":"ros-humble-dynamixel-sdk","requires":[],"size":49082,"version":"3.7.60","binstar":{"package_id":"639266cce6a2f79ab8292707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"544224af82e56d453b3ae78ed28f5b0ccb2eaf08123e7b59e2f7a29aaf195509"},"ros-humble-sdl2-vendor-3.1.0-py310h6ad6bf0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sdl2 >=2.26.1,<3.0a0"],"build":"py310h6ad6bf0_2","timestamp":1670539361670,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3ed56cee08f3cbab10babc7d2d7e2c6f","name":"ros-humble-sdl2-vendor","requires":[],"size":9668,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"839d89688c734e959675d77a20a9358a366b086f238f0d2c1ff83c2bb4f51b4c"},"ros-humble-sdl2-vendor-3.1.0-py310h15eb805_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sdl2 >=2.26.2,<3.0a0"],"build":"py310h15eb805_3","timestamp":1675639165402,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"39fd26115cc0704c274e4845df636ca2","name":"ros-humble-sdl2-vendor","requires":[],"size":10910,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fc94411ce7613365e3cde7efb64b9c5409ec20be532dbeaefd548b5f99acfcf"},"ros-humble-ament-cmake-copyright-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540204010,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7685e7935de4b502cb6fe1a74606495b","name":"ros-humble-ament-cmake-copyright","requires":[],"size":10386,"version":"0.12.4","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4cbe1e4ade13d519406720f3982ded80c648ca16821135f92f946af920196f8"},"ros-humble-ament-cmake-copyright-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675639990789,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3f743a1e05938422edf14520de5e8bc6","name":"ros-humble-ament-cmake-copyright","requires":[],"size":11631,"version":"0.12.5","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"721b6f2ac496d14ac051962a5e795665796e20509a24159281ab832085205b1b"},"ros-humble-ament-uncrustify-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540243185,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f5933d3b33e5d793d709c5051bef348","name":"ros-humble-ament-uncrustify","requires":[],"size":33832,"version":"0.12.4","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d98e2b77da07d3537ac2dc9c44dca4ca09a7664afb759a56d4c684baf8c53b03"},"ros-humble-ament-uncrustify-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675640041225,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6b8e5a194f3367583124408586b0aa41","name":"ros-humble-ament-uncrustify","requires":[],"size":43287,"version":"0.12.5","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dce228ec510ecdadded451671247db4f0cca597faf5f30f571000f08d871ec6a"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540356897,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0713e11aba429a7f492143f0b07427d5","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1078899,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f04b04dd446ef44c5855013fc7db62a59ddf46f51d724d8e412b31d1320a9fa5"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675640199136,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6937cac49a87a515990dbf2598200e96","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1080388,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2479ed4f3f7b137de13a10af9427e6008e6736c18d4b6f8ccf7c111b01bc27e7"},"ros-humble-launch-yaml-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540282401,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cb2afecf2d64da0ab3dc4db3e4fdf931","name":"ros-humble-launch-yaml","requires":[],"size":13028,"version":"1.0.3","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0a3b9cb7217c4060252c3f283ec0dfa8ea9c259d4d41129b942b3aed0724e15"},"ros-humble-launch-yaml-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675640091244,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eb1d9b4baba2fe47b1aca20a3cdfeda0","name":"ros-humble-launch-yaml","requires":[],"size":17346,"version":"1.0.4","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b775314565b33dee54e6f62c363603a05e276d764b8673164248497811832a9"},"ros-humble-launch-xml-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540318776,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d20b70e292627a476b59c1df273f01df","name":"ros-humble-launch-xml","requires":[],"size":12663,"version":"1.0.3","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0ba45ed39a9bff52e53553746f43867345098eaa8e7f1d3a3ecc60f8ba025ee"},"ros-humble-launch-xml-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675640139366,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0cb77807f874eef5e636f1a961e235f1","name":"ros-humble-launch-xml","requires":[],"size":16701,"version":"1.0.4","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"594f5ca6c54bf01cfe3f75afd24f3054f6890a12084893e7d5cacae968476b1c"},"ros-humble-ament-cmake-cpplint-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540724992,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"be6c471340cb1c4631067241704e32d6","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":10765,"version":"0.12.4","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb7124c8b09dfe2a92b8e69f3a89dc0182a177d7c881d029d3eb8df3a1237b10"},"ros-humble-ament-cmake-cpplint-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641367773,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"79bd2b62bb94475dea3cd7111f8a7498","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":11960,"version":"0.12.5","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"145237fc8a508cb66f0ce57e101f7f0880c69a49fd308cfa51e14233fae34c8a"},"ros-humble-ament-cmake-pep257-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540664559,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0f017b6526b658ea2106d32661ecbec8","name":"ros-humble-ament-cmake-pep257","requires":[],"size":10368,"version":"0.12.4","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b68f7b3ea17d000cb6173978b7e3d92372dda8d2c72205f78bc06389ea9d693e"},"ros-humble-ament-cmake-pep257-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641270874,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"40c1069b3bb391fae255e589a2dcf331","name":"ros-humble-ament-cmake-pep257","requires":[],"size":11651,"version":"0.12.5","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41bd48b6b9c6a2400c07358b042d0d17c9bb1f9f53a1ad34f7e71e2596302ad5"},"ros-humble-ament-cmake-uncrustify-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540633881,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"42b3f960696cd491f68184000ee7210d","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":10777,"version":"0.12.4","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0b27ab3663f8139942239bb5b9f670b6dfe6af34d6fc3f8b01d8fc0df23e6fa"},"ros-humble-ament-cmake-uncrustify-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641221423,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8b17c93ca9a495d639e64e70a1ceaca7","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":12030,"version":"0.12.5","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f50a3818b560ac4123916206a530e2e332b159bd984e830541035cca9e0aa99"},"ros-humble-ament-cmake-xmllint-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540602738,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f4e3c69fa574c32d0efa760f36a30c45","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":10440,"version":"0.12.4","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe87bbd1a40b5dfe310f2b330ae935937124a6bebc41278a39052ae410966863"},"ros-humble-ament-cmake-xmllint-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641169623,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"03f083b4464806b8a5cb714169c557ef","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":11690,"version":"0.12.5","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bf9702a13808e1a963d06d062775e5fae4b4d1c3ce51c3f16dc90900867157d"},"ros-humble-ament-cmake-flake8-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540694726,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"864b1c62af3132a02b3b8b3c49d4bf9d","name":"ros-humble-ament-cmake-flake8","requires":[],"size":10609,"version":"0.12.4","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03b64adc94ae7815b0d9c6d70b8ff599cd64741f4768ce3c4584b89ae4ff1807"},"ros-humble-ament-cmake-flake8-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641319476,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cf364e0c6c22e0b11fd84ecf3e1ff997","name":"ros-humble-ament-cmake-flake8","requires":[],"size":11887,"version":"0.12.5","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e9c98cbbddb75cec77676f4607beb58b4fd7183d59632c292cc51290daa6cae"},"ros-humble-eigen3-cmake-module-0.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540780992,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0ec0be8fc27dbd911714944627ca9884","name":"ros-humble-eigen3-cmake-module","requires":[],"size":9865,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d31db3eff50055f4d754d3db0d6b49828edd1766af25e916f2af3273ff3c69f3"},"ros-humble-eigen3-cmake-module-0.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641373905,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"04ebba33ed6cf123fb34c0fe8c25b87f","name":"ros-humble-eigen3-cmake-module","requires":[],"size":11094,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c06078c1f885797ab1f7362d1c85bf6581f7097cdd1c9db40f6ddddc40fe2e99"},"ros-humble-ament-cmake-cppcheck-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540715001,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6e47295116aaacd1897259814ad8fb48","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":11380,"version":"0.12.4","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64b2fd4293750ac6f55f953d012f0d936f5e6374b408ad1f52d16486d0e3c23f"},"ros-humble-ament-cmake-cppcheck-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641270325,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"193bc8aa876282f704bdbf89e615c2bd","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":12641,"version":"0.12.5","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68846c8f379e7ba12697bd8c2ac5f4235c36f924bce144d4df6fcbee26848366"},"ros-humble-launch-testing-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pytest","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670540749092,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b3031750182b76542cc3addc9b2b40c7","name":"ros-humble-launch-testing","requires":[],"size":74430,"version":"1.0.3","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c07d46a87e50a5db600896ddeaa5ea9446657b08e26e4956c5e213f0070f533"},"ros-humble-launch-testing-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641321477,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7e69baea08a7994be0604c91eb30eb5d","name":"ros-humble-launch-testing","requires":[],"size":119604,"version":"1.0.4","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8e00454aaf360bd1c187bacd6a502ae26d12f1b8ec26bdba7810366e04c6335"},"ros-humble-ament-lint-common-0.12.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541002365,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16ff5370470c78b7933158551c758904","name":"ros-humble-ament-lint-common","requires":[],"size":10181,"version":"0.12.4","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df18c952ee601ce06a9777a6c1e930628af4b15f58d6e00d30313bab17b58059"},"ros-humble-ament-lint-common-0.12.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641891011,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2ac750daf7c17e90623e183b017c0b40","name":"ros-humble-ament-lint-common","requires":[],"size":11544,"version":"0.12.5","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fcec7671a0e2258a64fd6534bebe17a8eb7c3dc00288c13b4fbbb3ef0a236eb"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-cmake2 >=2.16.0,<3.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541187851,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dcd169cc1931482e2ea05b69b487615c","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":6358,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"904826814c6373ffcf07f2c8ee5cb747707b06fdef9eff96e4a0af76d6817b14"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-cmake2 >=2.16.0,<3.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675643671788,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"519be4fdf2b7dc6e7f7e653851008504","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":7754,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2ded7ec3d94d4fcba76ccf06111c62a3780a3e7395dbffe7d8f043ab3554314"},"ros-humble-rviz-assimp-vendor-11.2.4-py310h451f4a4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h451f4a4_2","timestamp":1670541143862,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c065ea702ac8f93c0eadd2484f4db90b","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":9885,"version":"11.2.4","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34d5e38ddf7614cfb90348a55963f8a2cc50326166d66310e64a8398af7d6ed6"},"ros-humble-rviz-assimp-vendor-11.2.5-py310h59aee57_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h59aee57_3","timestamp":1675643585925,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6910f4101463ba1fa12180808ed5af50","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":11185,"version":"11.2.5","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c377fc7399b43d53cd399c1e73d697001223d9ae3a1082f197a752487ce287f3"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541041160,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"900e98f6b7f706473cbaa8aa4013b5e8","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":7310,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd19563a71fd9cd30c64bf0288b8cd4307956b62d480e742e4ffe1df62fc0da7"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675641949720,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5d162b1fe21ff12e7383b9b6bb39ae33","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":8728,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47a0d6f81a68422a122e6555822391fe7924e60ca5f21a8414eb3833b03f0a92"},"ros-humble-rviz-ogre-vendor-11.2.4-py310h01fc7c0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp","freetype >=2.12.1,<3.0a0","libcxx >=14.0.6","ogre >=1.12.13,<1.13.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr"],"build":"py310h01fc7c0_2","timestamp":1670541099650,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9f9f22a591d3cce6ba7b72d0abb5d047","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":12071,"version":"11.2.4","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fc5420704e8785e2d1d605534ce41e2377fbf30c0c23f49a8df4b1cce056695"},"ros-humble-rviz-ogre-vendor-11.2.5-py310h94f70a9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","freeimage >=3.18.0,<3.19.0a0","freetype >=2.12.1,<3.0a0","libcxx >=14.0.6","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","pugixml >=1.11.4,<1.12.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr","zziplib >=0.13.69,<0.14.0a0"],"build":"py310h94f70a9_3","timestamp":1675643471587,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2caac9bb224a52500de84d8d6ee65df0","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":4806818,"version":"11.2.5","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c2f8a7f184ce41e97decd0e9abd1189c2bb5ab300c7393d5ecfdeb10b414722"},"ros-humble-tango-icons-vendor-0.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541582846,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4bc52a0648c6056010e2bfcd8eb6929a","name":"ros-humble-tango-icons-vendor","requires":[],"size":1016211,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"668273aa2b17a01685e361885458c543d382e15cbbfe6e53cb1245f6b9b59374"},"ros-humble-tango-icons-vendor-0.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644022757,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"da84dcb7fcbe1c310d0541a872de328a","name":"ros-humble-tango-icons-vendor","requires":[],"size":1027192,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a458ded9a8a0b1f1fa4a97fba18d1a748e747dc96433b36b387d9201fcf3d97"},"ros-humble-ignition-math6-vendor-0.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-math6 >=6.13.0,<7.0a0","python","python_abi 3.10.*","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541714784,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4009dcdf1f9911bfe358ff5571f58606","name":"ros-humble-ignition-math6-vendor","requires":[],"size":6395,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa0dd808404153f582e80fc465c01a103943b0c3787aee6846451ba6936189f6"},"ros-humble-ignition-math6-vendor-0.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-math6 >=6.13.0,<7.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644167164,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"90bc7ff53eb11e321df500235907db69","name":"ros-humble-ignition-math6-vendor","requires":[],"size":7841,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c1a496e131b3fdddda0075e4b5db1f0b5c46057c27fe13c5531a5964630c127"},"ros-humble-moveit-common-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541529557,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"207271457f0b0d11346b84c9f3f40826","name":"ros-humble-moveit-common","requires":[],"size":10923,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"279b13a7d8d0042c824ed92a35946a4abeebe71d133779fb83281665e4ef2d41"},"ros-humble-moveit-common-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675643966771,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d3f0733e82eae2bd03586a55c9a603e8","name":"ros-humble-moveit-common","requires":[],"size":12372,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae75ca517712bedb4d32eabe7242a11da373c06c5cb49b28b2f09e7d6984a034"},"ros-humble-keyboard-handler-0.0.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541662496,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ccb2e984d12805c23449cfdcf51b1701","name":"ros-humble-keyboard-handler","requires":[],"size":44106,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5f37127d02096b85c5732768c43bb684af702d1bb0ee6354c55b959dfbc5637"},"ros-humble-keyboard-handler-0.0.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644107017,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d71a57e48ce1670eca6dbc7e93a22bb9","name":"ros-humble-keyboard-handler","requires":[],"size":45716,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6b5a7c49c40145bc7a7e35ae104eb264c3cf418c19fc79bfa77ef49eab81ecc"},"ros-humble-python-cmake-module-0.10.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541456761,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17218ee32301c1f58bebfbd63d45060e","name":"ros-humble-python-cmake-module","requires":[],"size":11272,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"902aa17db3484b5f2786c98c5db6810cbcc3862686fe7a6d427ea3ac9d7945d4"},"ros-humble-python-cmake-module-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644153917,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8517b6566112b74638e73ee454c366d1","name":"ros-humble-python-cmake-module","requires":[],"size":12707,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cca766342e1aa7ecc5038c6a888ad86bd99be0ad857e18cde7142fd8e6597b1a"},"ros-humble-performance-test-fixture-0.0.9-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541538265,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d384a8a9044138b1aedea1991fe67678","name":"ros-humble-performance-test-fixture","requires":[],"size":20787,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"530b24f1e438c40264f4400fa247c3a966448549b9cc24a22dc65f84fdcbd490"},"ros-humble-performance-test-fixture-0.0.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644225347,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2c2392ec0f14d74d3f3152f8b2cb8960","name":"ros-humble-performance-test-fixture","requires":[],"size":22351,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afa2fe7359bfb7a992d51de21d3a2ea77138e4d73247532a75b612b01e20e0b3"},"ros-humble-rosidl-adapter-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","empy","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541724166,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b789b0ec1b529d2a29796e1c35704024","name":"ros-humble-rosidl-adapter","requires":[],"size":36029,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de780f189ee5cca2d6d0dbd61c0ac629649adf9a74414733935ca15b2c581702"},"ros-humble-rosidl-adapter-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","empy","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644403368,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6efa27b079789d3796ba8eca384bcc1a","name":"ros-humble-rosidl-adapter","requires":[],"size":58448,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac62ba765eb9b06be82b2f449b2b1d1d35c474e2438aeff860d0211d438c137c"},"ros-humble-mimick-vendor-0.2.8-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541611297,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5deff685ac1c64534b133c59d2827f9a","name":"ros-humble-mimick-vendor","requires":[],"size":37909,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84c5a9868276818880e39e7043f8b00a73a6d6205fc910a1b5690809c9de42dc"},"ros-humble-mimick-vendor-0.2.8-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644291396,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3504554efa263f1eeaa12c81d3ee67e7","name":"ros-humble-mimick-vendor","requires":[],"size":39548,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7810796f714aff95eb02df9e42cf6ef0c0b8ad4b451fcbdc68f2b405fee4288"},"ros-humble-ament-cmake-ros-0.10.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541669418,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7a6f76342749558761b8dfddd6e5feb5","name":"ros-humble-ament-cmake-ros","requires":[],"size":12491,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0910b55ea302b450577f31da68c5006fb124034b001881fdba85357bcd29dcb"},"ros-humble-ament-cmake-ros-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644345289,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4d6c5b2338e99c0472d716dca226b7bb","name":"ros-humble-ament-cmake-ros","requires":[],"size":14571,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cb1c89709b3abbc5f458b6e9732e28dbf0ddeb358e7aeb9532684c4fa35b070"},"ros-humble-spdlog-vendor-1.3.0-py310h7ac6dd2_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h7ac6dd2_2","timestamp":1670541519797,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"21224814f02fe64f96a5437a8cfd782e","name":"ros-humble-spdlog-vendor","requires":[],"size":9113,"version":"1.3.0","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa4fe0a1f47cad0f9409b1d662c39073e3ffc013c2381b68ec73cfe0fa87656"},"ros-humble-spdlog-vendor-1.3.1-py310h4c00329_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h4c00329_3","timestamp":1675644061525,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3d3b36300556689c2312dfc6435cb800","name":"ros-humble-spdlog-vendor","requires":[],"size":10581,"version":"1.3.1","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97d94f700e31af4de931c79069b60732d000cbb82ac9e23616bce11a93187757"},"ros-humble-python-qt-binding-1.1.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670966733641,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b196b19ddbaa0063ab01ae0785bbccdb","name":"ros-humble-python-qt-binding","requires":[],"size":33052,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34086cf780a8574dd9ecccadf8c438e573875581447166683a2bc158281b0310"},"ros-humble-python-qt-binding-1.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644265297,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e195a2389e8f0d401790d9ce457f9e28","name":"ros-humble-python-qt-binding","requires":[],"size":33443,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"080aa0e7ea1c6d1317af347f702e22211317084c2ff9307701e81aabb30da2af"},"ros-humble-smclib-3.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541629232,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b04a9ba073c113fa50a943e6a3d7c6e1","name":"ros-humble-smclib","requires":[],"size":18845,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfa240f9dcf5ab0824891c65a56eb0fdc8a79eca6b48a2afba3dabcaad5cfe76"},"ros-humble-smclib-3.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644172155,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1547830fad5bd843ae66a6d2b80e6b83","name":"ros-humble-smclib","requires":[],"size":22529,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61041a9c638d36fd1d3822c91312b30740beafbac7d6ec0ebd05e5f376479343"},"ros-humble-orocos-kdl-vendor-0.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541581019,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"14eeb055b8b8ca510bdcbad0596e4aca","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":9902,"version":"0.2.4","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"344bfd693eac39d81a098fc260f9fb9d75dcfd9be6c79a90d4ae12cbc5dfb729"},"ros-humble-orocos-kdl-vendor-0.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644119931,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"776932a29f26bf7d700f82cd52a988b5","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":11396,"version":"0.2.5","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9dc43f6213b099d58edcba33d3aca10e4fb0fab4a5a88f4a0416b394e477627f"},"ros-humble-ament-index-cpp-1.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541468281,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eed076a83c3cb17cbd9e15db92c5557f","name":"ros-humble-ament-index-cpp","requires":[],"size":31124,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc11e498d67090db718f01db45ea6c003758a196ee4d1a996d2a30700a1e5014"},"ros-humble-ament-index-cpp-1.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644006657,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f8a16996a2375e8989317b256c1cbda5","name":"ros-humble-ament-index-cpp","requires":[],"size":32754,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1432fba2a7f45c69ae3a0140522c20702ad0b19631b43fea7053cda005e8e291"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541511870,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2966bba41724c36dbaf4a111a5a250f9","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":10255,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4eb34b22bef6fc9160db50d6f8ef380d4c1aeeafaf5bc83f90e0dab5dfcd57ba"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644026586,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b2b2a773dd5266261ee2fce02bc15733","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":11721,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c898e772f32c2561f7b453051ab953b6e72409443109643fa7f06a8953eb564d"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542231745,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ee7c01c745dc55247188087f75666b7e","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":14293,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f4952ee77ab3fbc88ea17ed08043304b0f748349893de27a81743489882a456"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644789446,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"92e8e9eb18acfaa0cb9653b73a615d11","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":15837,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eca9d9fd3253f0c01f366dc51f328382ca2470b0c803a04a04e0d121a81d0189"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542282732,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ce6b7262921fcf32a3a7ed01d43bb004","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":12156,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"112684a7161c374c0bac831268a3b295087ff0d0928700c680cbdac4f560d10c"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675644843669,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"196f9d988356620a8f2a306aa933fa40","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":13702,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be89dbc1ddb9e2129d16fc9e261ac3ac8c2687674aa750e2889e8c89ac075729"},"ros-humble-fastrtps-2.6.3-py310h614d75d_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h614d75d_2","timestamp":1670542182094,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6d2f37e1e05f68f6ac97be8a05369b8e","name":"ros-humble-fastrtps","requires":[],"size":2940317,"version":"2.6.3","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69ed79c6bf5a494d390eb72ed6758b6274eeeccb5e7f145a3befecb5d0b09ada"},"ros-humble-fastrtps-2.6.4-py310h6191ce5_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h6191ce5_3","timestamp":1675859266779,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8161c14250aada0a84df2a16bb8c3d96","name":"ros-humble-fastrtps","requires":[],"size":2941737,"version":"2.6.4","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1549fc5c7a6a417451e487eeee5ff003a90254bb59aa764ef8a5d8d498ef361e"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670541456575,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"12c63de4efcf35fc90f4992cabdf3ac1","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":11487,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bd226606ebfa28cd94d3399899bf22205c4ed4e7d90f01681010aa90a566837"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675643972198,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"22565c04ec5fd85548f50e88f4ee555f","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":13017,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ebc17a523f98e9def002d0c8ead48a69ba835f4961869835c1779a435639afb"},"ros-humble-launch-testing-ament-cmake-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542764395,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2806f7e0607d9ebd4ca49a6add1d0fc4","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":11607,"version":"1.0.3","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5a1d31f801a1701d3a37e8788fa97e4a625363a0dda93a6a41b8de30094fd75"},"ros-humble-launch-testing-ament-cmake-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645322958,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c288a73396d1d45c45b0eb7ea57dfd91","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":13104,"version":"1.0.4","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a05c94201d7704c3093cbf53c9939d9f103c3e39b5f78cc1c45449e07d184243"},"ros-humble-rosidl-parser-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","lark-parser","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542820303,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9ca5f093bf63197258dee19bbcd4897a","name":"ros-humble-rosidl-parser","requires":[],"size":34646,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d203b82b30cb02271b556769b34ea2900a5c2b2f0fd9387ddda0b7e3771e6c9"},"ros-humble-rosidl-parser-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","lark-parser","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645384528,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2fcf56cec9c19b87af42f1c7c9345b5b","name":"ros-humble-rosidl-parser","requires":[],"size":54257,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d68b75fa6863cf0217f58e2ef0718fc92809493f025857fd63d020aea4098789"},"ros-humble-urdf-parser-plugin-2.6.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542985211,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3967586402130f9a5fa539c3154dbd00","name":"ros-humble-urdf-parser-plugin","requires":[],"size":12717,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"288bc9d913d61d509355e8adae0884e3e759614ecc42cd30e103ed2c226b9b11"},"ros-humble-urdf-parser-plugin-2.6.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645572393,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"642fdc3d92830bdba9c82d0469f0db20","name":"ros-humble-urdf-parser-plugin","requires":[],"size":14397,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0afc4be8760c67253f78ad13e2f851ba3505164b2546f15c06b56454eff9791"},"ros-humble-console-bridge-vendor-1.4.0-py310h06b5040_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h06b5040_2","timestamp":1670542937279,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f27a8a5306c28aa111b07790c3d08b75","name":"ros-humble-console-bridge-vendor","requires":[],"size":9237,"version":"1.4.0","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f5f5390e50c56196a9a15d686d1d6453f634fb13da8e33317431a98da73ce25"},"ros-humble-console-bridge-vendor-1.4.1-py310h10e9492_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h10e9492_3","timestamp":1675645510942,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a24a638114718f2d586be41ae5416dc5","name":"ros-humble-console-bridge-vendor","requires":[],"size":10755,"version":"1.4.1","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"144a7f996b531db5d04dea1603b7b0f793e257d6b6ac8928f1510dd156d4cd61"},"ros-humble-tracetools-4.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542888121,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b916ffc89ebcc2303e7f6817761c0c70","name":"ros-humble-tracetools","requires":[],"size":19104,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecf860252c7c318c6dcf17e74e4771a2d175c23005ac92294aaa4b4dd1d6f2d1"},"ros-humble-tracetools-4.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645456049,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5221e8efecb209bca59ecbf0b17d99db","name":"ros-humble-tracetools","requires":[],"size":20830,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f686c7b9e8552704feaf8f870a3041582bd70dca267b177e606a4b2a85325d2"},"ros-humble-qt-gui-py-common-2.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542991435,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"50ecc544271a91c96e6e2815853214d8","name":"ros-humble-qt-gui-py-common","requires":[],"size":20045,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ccd53706fc97916d6dddc5c8924423fe99c420a052e03da1509b42e9172aa6d"},"ros-humble-qt-gui-py-common-2.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645550743,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8694ddae06e42d48683d82b3c34d4de3","name":"ros-humble-qt-gui-py-common","requires":[],"size":28864,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab22ac54e1e796dd2e6d0accf82ff3fe63e1eba4151ed3e9069cb7589e67aaee"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542940965,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e81adb1cff497cfb310e136c1741e195","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":16133,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c6d332b86b5a88cf5ed7baec6d8a4f817a64075ea9cf5c26e03625dce6ef442"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645494966,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bb4ef91bb1730d506c0d93d4a99063e6","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":17832,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e27659148de9557234235941378ab3c114afab042a952d7381855e2149728908"},"ros-humble-qt-gui-2.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542865446,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2442c4986070ee46b9b71feae014ad13","name":"ros-humble-qt-gui","requires":[],"size":104734,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ea70a560011a9d062ac8debd93e160e0fbee91b3056457f5b234d2a67f051b1"},"ros-humble-qt-gui-2.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645421905,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3e16a178aebc42d2616d60f953575713","name":"ros-humble-qt-gui","requires":[],"size":177209,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8a52884df9d1941f8fde332a99edf768a2317930e31919ffd7b0339c4c7a124"},"ros-humble-resource-retriever-3.1.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670542765408,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b462e6a8ac6036b06fa1f0710a66992","name":"ros-humble-resource-retriever","requires":[],"size":23058,"version":"3.1.0","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75573b50e42121e28ccb25092191fe2bf7df3c1dc1946ff4e74ce7ae50e5f1e6"},"ros-humble-resource-retriever-3.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645331705,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7e972424238f739c9e23ccdf513d8808","name":"ros-humble-resource-retriever","requires":[],"size":25900,"version":"3.1.1","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b889c0cd38bfb54d631ebb80050527448188b3c5d1f1e6fe930482a3c088cde1"},"ros-humble-qt-dotgraph-2.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pydot","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670543071908,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e82d64ceeee7c47657357cbd45c68789","name":"ros-humble-qt-dotgraph","requires":[],"size":29031,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45fc46a923947e69c6375c0e2c93524f3fab506da92901cf36f852a66e2e7c62"},"ros-humble-qt-dotgraph-2.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pydot","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675645625383,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9ec54e9042dee6af85166f31dcb02493","name":"ros-humble-qt-dotgraph","requires":[],"size":47537,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91094d36eac42ae87d8436291c8e0ea5c5a04d10bf5aa3c2a8ef8579ad1598ce"},"ros-humble-urdfdom-3.0.2-py310h06b5040_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310h06b5040_2","timestamp":1670543506809,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f28d9f6be1125c0bc105f3fd06a4632e","name":"ros-humble-urdfdom","requires":[],"size":113830,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"287f5cd2eaf435f29f4ea04d42afa64d98573631483c75fbd9f89f11b501c440"},"ros-humble-urdfdom-3.0.2-py310h10e9492_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h10e9492_3","timestamp":1675646280138,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f7dab17f324f6e255f01f01754066dea","name":"ros-humble-urdfdom","requires":[],"size":115438,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3390e2aeee6cd1677ad4ff037e8ecf9bb9494d52357d2b7b0be06781c7794c4"},"ros-humble-rcutils-5.1.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670543348898,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"003f6f7ea0603a704528ab9c7cc3ef89","name":"ros-humble-rcutils","requires":[],"size":86952,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f393eb6dff67039d1e4b6b4f94b0495eb5768d4f8d9eb6b41cc754424a9c7ed"},"ros-humble-rcutils-5.1.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675646026344,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"15fab1220966066dbcbba5cc9d00b474","name":"ros-humble-rcutils","requires":[],"size":91382,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6cf5772672b92a25bd2d49b17801a4d656a9384c2de36cefcfab66ca4e5bbcb"},"ros-humble-rviz-rendering-11.2.4-py310h76e467e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h76e467e_2","timestamp":1670543784274,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8f93bc95e3f10716983c81f61402e1ab","name":"ros-humble-rviz-rendering","requires":[],"size":935850,"version":"11.2.4","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e48db242d03f35d75e2b5395fa283db61dfc13d062fccc250286b5d73bc121de"},"ros-humble-rviz-rendering-11.2.5-py310h8a0e159_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h8a0e159_3","timestamp":1675646535771,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e5975c4866e3cba24ef5a9da398b8b5a","name":"ros-humble-rviz-rendering","requires":[],"size":950766,"version":"11.2.5","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d3b9f055c7fa2183a97804fca719bd99630f34beb3d453020fcd16ff3ed8887"},"ros-humble-rosidl-cmake-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","empy","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670543403536,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6c4b8725e9c293dd97c70ca2e6707bf4","name":"ros-humble-rosidl-cmake","requires":[],"size":21556,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bb13bccf56d921dfc38f6cff1ea83acffd80e1d65842e3693fd1808e1014570"},"ros-humble-rosidl-cmake-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","empy","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675646163088,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"89b4504bb4ba9ea7f7a031d13a9d3fae","name":"ros-humble-rosidl-cmake","requires":[],"size":27307,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1191c0fc1937294504064471c22ca7fb51486a401c48f2e3e4f1819a4a7219a9"},"ros-humble-rosidl-runtime-c-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544024087,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"55e3bb009d494a5a8061bc4f6d7ebf1d","name":"ros-humble-rosidl-runtime-c","requires":[],"size":27060,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49fd3186d58f9b6d2d44592e81507f866a53a8767e7b56c4d87346e2c5e0c49e"},"ros-humble-rosidl-runtime-c-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675646960723,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"40668d82028732c82d24c753cac0d463","name":"ros-humble-rosidl-runtime-c","requires":[],"size":28918,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6828699c11c693e3141b7bed0072e199c97bd1bc67f89340c223144b940ff61"},"ros-humble-rcpputils-2.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544076361,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"564b2d561416c6dc3162d71e9fce4abc","name":"ros-humble-rcpputils","requires":[],"size":48590,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41b317bfb53c78702ea6aa70dcaf7924a8c977dce6f29b568140697fe483c6e5"},"ros-humble-rcpputils-2.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647032535,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f55ae5941f5f1156fe1160a7fc8900c","name":"ros-humble-rcpputils","requires":[],"size":50360,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52e7e4f2fbbdc34f494b8745f2faa0e217f277e6c277aadf27172854b26b2d8e"},"ros-humble-rviz-rendering-tests-11.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544157113,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b91d17541c7f7f0575769b39eb64ebc4","name":"ros-humble-rviz-rendering-tests","requires":[],"size":9387,"version":"11.2.4","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9320e04b7f6159f671fe2dd54d66b27668d3d8639bf58dea1d323c0fd8d778c9"},"ros-humble-rviz-rendering-tests-11.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647142377,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"23727e5fee8a6c5c355d384d608e696f","name":"ros-humble-rviz-rendering-tests","requires":[],"size":11729,"version":"11.2.5","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8751282687b83cad35d1a5874bf39f3ed9186dd5c184dc40d4058fd606b6b4e0"},"ros-humble-class-loader-2.2.0-py310h06b5040_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h06b5040_2","timestamp":1670544534282,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9727384fba90f23ffec8a1d971400f77","name":"ros-humble-class-loader","requires":[],"size":50359,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2adf3dcb7dc0fb7b4444d9b72154fc990675821d551a4854e33f8b0da0f77789"},"ros-humble-class-loader-2.2.0-py310h10e9492_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h10e9492_3","timestamp":1675647689301,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"712cfae0e860fc176c70d98b0cfe9f0b","name":"ros-humble-class-loader","requires":[],"size":52148,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69dba2fa0f41e6a51c96096630a7c6e7086a6fe512ac60b4e44ec0a50d1d3706"},"ros-humble-rcl-logging-interface-2.3.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544454926,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"282ab46b1c6d664091d58bea720ba309","name":"ros-humble-rcl-logging-interface","requires":[],"size":15386,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6178ec872bc9da89966f13b2a60b6df2205524eea7975122f0eeaaffd82024ea"},"ros-humble-rcl-logging-interface-2.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647617239,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"64a459fbbaffde83d4f23fb32d9aa823","name":"ros-humble-rcl-logging-interface","requires":[],"size":17073,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e33f158ef16b94b8a241af8f44880d526e77ad3036a5b44424a368ee89a6c250"},"ros-humble-libyaml-vendor-1.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h61b69e1_2","timestamp":1670544615159,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"db226b8c7e69517265201782bde4e9bc","name":"ros-humble-libyaml-vendor","requires":[],"size":22299,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3a9d1d9b7d9de330431a098c3ec2dc980261a920157f8332966f70186db168f"},"ros-humble-libyaml-vendor-1.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h5aa156f_3","timestamp":1675647900276,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"548e4e14bdc616da41e7a8881ab2885b","name":"ros-humble-libyaml-vendor","requires":[],"size":13515,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8d798b689108af5cf0c6d3f9ffc33236fd809ee0f7bc7821ee994cd1c75d746"},"ros-humble-rmw-6.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544497532,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49ed9209970c72fce30d6ba692bd2211","name":"ros-humble-rmw","requires":[],"size":66343,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca7ba492beedf4b63acb328ceb2365a754b2e0d16200ad38f52478a57658ea0f"},"ros-humble-rmw-6.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647767091,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"48c41f5aa55344345a24a56ebcfe6f49","name":"ros-humble-rmw","requires":[],"size":68257,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"047727285d3a2324c33e7c4570c72889b24541d941b8d0dd753521dc43c27a2c"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544393353,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"132400ea7c791d5698e6ee8e7a9c3440","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":18407,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fb2c8679be1fa2bab05b454668255a5dbf57b7e12f425dd44db4be3d85f2830"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647640142,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f632eaa2c377992dd0049818b8d964bc","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":20113,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5795b15c520fa90dfd25b4918390f8ebe1b5e879b35c015e85e5ae3bcfea1f6"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544556558,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"001a228da80d7af218d7bdd78981a895","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":25699,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"839fcc021748f403c4c59bcfb709f1702c4df4c1b4fbf38c750f452e9bc1e35b"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647836228,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8761d84c9a5073925923b664828a9af2","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":29003,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46b56c516954e4c8c47328177a6ebe5981cc4eb081e43c3b0ddbe9a5830e5eba"},"ros-humble-rosidl-generator-c-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544439719,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3511c1371b1b7ae744c61d54198c3b15","name":"ros-humble-rosidl-generator-c","requires":[],"size":26657,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ba430bdd7dbd7aebdf47ce47c961c21d59fa31a35f56e147f319f650e5ea1cd"},"ros-humble-rosidl-generator-c-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675647698315,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"547b3740bb3c2496b852d56e2cb95602","name":"ros-humble-rosidl-generator-c","requires":[],"size":32607,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d985f79929962ad5d12824eae6bbedc407cf5e9989468f8607b532cd8e99b97a"},"ros-humble-rcl-logging-spdlog-2.3.1-py310h7ac6dd2_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h7ac6dd2_2","timestamp":1670545102779,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"23cdaa8faa7ad10ce86dc9f562b4df06","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":20230,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3db1b9aa77919099cdfbe99e23f813d802aa5d512ceec198e005676de1c40b9"},"ros-humble-rcl-logging-spdlog-2.3.1-py310h4c00329_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h4c00329_3","timestamp":1675648534845,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b4c79baf48f60b3b369d45aef81068b5","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":21963,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a838df69579039110ee7a01c109df858bdc08a1970b3e79aed71e3cebe86f4bb"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544893550,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7fa72c3134d9f6b2b765043e0790d5d0","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":28593,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e334e12b53f6bc6da66d39a275cbfcfa893bc9eb854b2b2ff2c8d6a945d16ab"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675648149860,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c1afa2584250dadb807620df9573befb","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":35835,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27e355c7205240c25e798d62229f3012c2561279437abf8def89b0cd246fed5a"},"ros-humble-pluginlib-5.1.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670545147301,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b8af41e1736b835ee2398a90ffba119","name":"ros-humble-pluginlib","requires":[],"size":26890,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"039f0a28ce1e213b1a217e4ec0fb531797d1215e7e5ff60079960c07ff58c61c"},"ros-humble-pluginlib-5.1.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675648589908,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa0ae1b36a2ac1f96a155cc134238dea","name":"ros-humble-pluginlib","requires":[],"size":28410,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"417b323c871cce3428edc3e9f7dfade5a76f213f86ea6598a6356cb46c797b94"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h61b69e1_2","timestamp":1670545033576,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7170180715df642ddff32512a75515fa","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":29382,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd5b69d3e0e1eb19bae08a6713a48457defaa10d89a532a56b911330f35f7d73"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h5aa156f_3","timestamp":1675648464169,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2335c3e0e2f7e3de1af45e680c489cc9","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":31274,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23988ada8a329d9797e5ef0c3019872bdcd8ef8fc959c815dc56771ccdda374f"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670544968254,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8c70407ff72c1d931779a90bddb40831","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":25869,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd9dcacb541a13948cfe81484e12b5a6c99594f970685f53a401cadf4d4768bb"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675648389812,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1d0a1bce97fb7262036d061f681b96fb","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":29025,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdb25a8f09539ed27fef110b0e0524476a3a7867c45c79c1e31aba84d515b06b"},"ros-humble-urdf-2.6.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670545458944,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"960ce37a54f4552ed2daa1d585c691c3","name":"ros-humble-urdf","requires":[],"size":105071,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c5f50d35cdf0f86506de13f429d23b430e874117c7a841783d4a00669357ead"},"ros-humble-urdf-2.6.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675648927256,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"827f30c6691e5a7f0dcf5c3d7428577c","name":"ros-humble-urdf","requires":[],"size":107076,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9da3c668456892e8bb8874f8e21b41362c12e70df06bfdfd082c731746c3e2ae"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670545390260,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eafab2a1d6089ea744e3a6c2757c2b16","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":29782,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c89466245fa7c2eabd52c060c49aac19e12c4a00af77c08033fade2f8ad5d4f"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675648840535,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"122907d47bf99602a19ae1b5926f5e12","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":33085,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93186cedc559518eac1722736854d5ae0dd3a8d4e9fe16ca11dff0095ae81094"},"ros-humble-qt-gui-cpp-2.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670967055313,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0f05df96b277b93d96df32e47025c3cc","name":"ros-humble-qt-gui-cpp","requires":[],"size":1070382,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8cfa45b8ccf25ddaebce58dbb2bc2451e83d746f0918cec0126766ca32ea4dd"},"ros-humble-qt-gui-cpp-2.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675649255487,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"edcc10bd82e298f47cd51cf307f685c3","name":"ros-humble-qt-gui-cpp","requires":[],"size":1103994,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1bafc6de54761d110c5128176c4e96e6f9980428d70781a16c0f5cb56caeb5ed"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670546199503,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c2f284f6a335e14a0907eebc8277d69","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":26778,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d1114862cccf05feabcc33787ea546841b56eaa073e3c3795a2a877958a8ad0"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675649738086,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9c14a75e7eb6a25ed6acd9e5dcbd33e9","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":30170,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2d7d4ffc67b6c235ce8de5de81f6293954bf8c58f047cdea482de17b95488c2"},"ros-humble-kdl-parser-2.6.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670546253780,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"479ee0552bdd73939725072cf2ddb563","name":"ros-humble-kdl-parser","requires":[],"size":28525,"version":"2.6.3","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce618a206088b9d9db00e94e86cd7426d68b67d7234aea6bbd91d0cdd82d6068"},"ros-humble-kdl-parser-2.6.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675649818238,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"581f50d9e03a1ffcccdba3858da6d750","name":"ros-humble-kdl-parser","requires":[],"size":31490,"version":"2.6.4","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f24669f64e9285f5b5f1494e87143003ffb587adef62530e1ca9b097b9f7333"},"ros-humble-turtlebot3-description-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678331066379,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ee4dda6467bd14915b9e5fa333e9c5a7","name":"ros-humble-turtlebot3-description","requires":[],"size":7780728,"version":"2.1.5","binstar":{"package_id":"6392755246f81babcaf7e479","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2354b46b6295aead83f6bcf69d1a28e2f89d27f6392ce312e5bb1165aeacf794"},"ros-humble-rosidl-generator-py-0.14.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670546795203,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa04ce224576a6b0aef2f57a731448c7","name":"ros-humble-rosidl-generator-py","requires":[],"size":36314,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d705c0b667c296729f601ff8741713648e477711cfdd6eec28f23a69a91956d2"},"ros-humble-rosidl-generator-py-0.14.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675650538705,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1e406e7dd930fa0b6df98eb6fc09ca20","name":"ros-humble-rosidl-generator-py","requires":[],"size":45044,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe60faec24d1b16e6a6ac93791a0ee105ac70924c3c48fc1fedd25adf3a14d6f"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670546411289,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8e8f3bc64ab7023a150cce886b017aaa","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":27637,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5bc44b68a09faf041b05d85908dd0d9dbb17a2a5f999694e446de65586d65f4"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675650017279,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5f000d8f3b2165f40672e6baeb8ccd99","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":31158,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a62d9e16bccd99f9d376e5b3625fb2c1b8a9b8dd611b11995eb60cfb79b1993c"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670546720990,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"85571b16e5c9ac4767b19b872ff485b0","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":27007,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a4d1cc15df9c2623428b10c0171c6b34a9850fa9903e89d5ad7f6aa14e4372f"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675650406530,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"66dc368103cfe7ed2ff02e0ab62a6e08","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":30512,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22284d0b95aaf778a0cb2bcb45c937f6232c6d374cbc59d84462553aa8fd63b2"},"ros-humble-rosidl-default-runtime-1.2.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670546856602,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a76dd025735bdca5427a04b10d2d5708","name":"ros-humble-rosidl-default-runtime","requires":[],"size":9630,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b57c2b72a6919c200bfcdfd89a2c42e13ad52b81d575cb96c24c0e19a7f7856"},"ros-humble-rosidl-default-runtime-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675650601411,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16c40029ebb8dc625f98e73cf62f3186","name":"ros-humble-rosidl-default-runtime","requires":[],"size":11494,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ae07187c9d5e63ce56491a793590ad95107a29e747095e65ce418aeaee9d9bc"},"ros-humble-rosidl-default-generators-1.2.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670546915297,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"651ab7069c7c1a294aa3bb05ed07238f","name":"ros-humble-rosidl-default-generators","requires":[],"size":10558,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbaabb63ad977a227398335becb03a46de0e9c400928890b6bee33bf5923f24b"},"ros-humble-rosidl-default-generators-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675650657413,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f800c16a50ab3c65fa698232a833fde4","name":"ros-humble-rosidl-default-generators","requires":[],"size":12376,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49e5af2bd4771aa237f449dd5a0c564a3aec3ec219d41c135059c5f0f6a3e4db"},"ros-humble-rmw-dds-common-1.6.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547497488,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f2930d23410ec783f2329f3ce86c459f","name":"ros-humble-rmw-dds-common","requires":[],"size":114771,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf836ceaf2c82b59c8c1bea72d15b2361385a78c8ed19aa97bec69b152e9bcfb"},"ros-humble-rmw-dds-common-1.6.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651347556,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f73e527c6f9bc9eafdc60282b00340ef","name":"ros-humble-rmw-dds-common","requires":[],"size":124824,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81da96234be783a458cb99f0dcd7a433f6cec5a0977c92d7e7362c3c17db2b5b"},"ros-humble-lifecycle-msgs-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547649651,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49ebdaff95f15b088f01b52a5db5a5bb","name":"ros-humble-lifecycle-msgs","requires":[],"size":126913,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c3395d5eb816309f83f724e6411ee0c16158b28717ef985a07fe7675ab59710"},"ros-humble-lifecycle-msgs-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651470201,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4d27dfe2e6dc9504db7b8140c9f1f29a","name":"ros-humble-lifecycle-msgs","requires":[],"size":145932,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd6562009171b01325b75f0c68d51cecca4438700956f165bd758907884656e7"},"ros-humble-unique-identifier-msgs-2.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547265261,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1f42f5012832b8e2330539b5a86f0639","name":"ros-humble-unique-identifier-msgs","requires":[],"size":42105,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a78409a287d5a4bf3f12a7908026fe15fbadd15a4c38d3892f1ecc4fee2c6e0"},"ros-humble-unique-identifier-msgs-2.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651151971,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"36f0ed7977aba414c4ae80a183c9f538","name":"ros-humble-unique-identifier-msgs","requires":[],"size":48163,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"732a173b3a6c375921df81fa2074b1764d6884092f1baefd0c2a63d3ecd511c3"},"ros-humble-builtin-interfaces-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547377389,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b33b6b325f26b351eac0dc5b8d798eb7","name":"ros-humble-builtin-interfaces","requires":[],"size":47780,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b64a662251b90cb04e44ea4c9de4da41202c3b908c154ec6e2fc2668ec1e814"},"ros-humble-builtin-interfaces-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651247538,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"819204d85f5ac4bf07c7401e3c84fd0f","name":"ros-humble-builtin-interfaces","requires":[],"size":53964,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86d32270c0e376fa1847c60f90b02b2c66c77c155da68be4fe138aad47305782"},"ros-humble-std-srvs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670547766614,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"94d32f45e8549ffd28bdf5fc29eb50ef","name":"ros-humble-std-srvs","requires":[],"size":71595,"version":"4.2.2","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64e74f95f35566364d60498f23e52f544de41be4e0514240f327011061feeb0c"},"ros-humble-std-srvs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675651566958,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b12c6f8d6053a64f802010e2ffddadbb","name":"ros-humble-std-srvs","requires":[],"size":80603,"version":"4.2.3","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1366af207cc9c1bc731e25d3fb3fc0531395458175b3f6005a702bae60541d7e"},"ros-humble-pendulum-msgs-0.20.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548118396,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4dd04ef7a7c632f4f7fdd3e1526265e2","name":"ros-humble-pendulum-msgs","requires":[],"size":61554,"version":"0.20.2","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51c67468a4a5cfa69cf97af43fe7abf2ea1751c75bdfb6b9450ac3cc998c8c42"},"ros-humble-pendulum-msgs-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652097305,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"38c4be6dd3de09cd07e0ddf58f991233","name":"ros-humble-pendulum-msgs","requires":[],"size":70426,"version":"0.20.3","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7eaca54862804dc360eecf77755e557942f5adee3cf1997efa8a79669b984ca"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670548225989,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fb216321b52bf7dd5ed0896fc1c29f93","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":188694,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2535910dd62c9d72825aca9fb3aab8dadff8189cc8cc47849354624468c766a"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652205709,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7fde5582e7f56bdcbda1d2c59bcc9924","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":191160,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ce7608fe0f6a2824b90332f3e8331223c01eeec72256ec49fc3b1228e9e8c00"},"ros-humble-action-msgs-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548069987,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"78d678931a648fad41ed090865adeebe","name":"ros-humble-action-msgs","requires":[],"size":81537,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d02b8e8b04983456780544051898cd37c6dcf0e94ba38e4c765f54aed532ed45"},"ros-humble-action-msgs-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652021583,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c5e274d601b2abc1d27327958a6c5892","name":"ros-humble-action-msgs","requires":[],"size":93289,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"591f6a335531d248015a472261f29f5631c2860db2106f63d280ea411572649c"},"ros-humble-rcl-interfaces-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548563725,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ae6feecba8c045a998734b9df871d4d9","name":"ros-humble-rcl-interfaces","requires":[],"size":260005,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"067f8e93a5f254df5ea025aed417f4943344993bf3178afdd93f4a6470675f92"},"ros-humble-rcl-interfaces-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652555435,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a3dd79faddf55be5a88938c1433cc817","name":"ros-humble-rcl-interfaces","requires":[],"size":288135,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"140db53acf1ea667ad7617ebd03300495a2f6fa1c337f256af96d920f98b0c92"},"ros-humble-rmw-connextdds-common-0.11.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670548284353,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d0f7b513670d58c08329c96ebcf7064c","name":"ros-humble-rmw-connextdds-common","requires":[],"size":29670,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61ebb905502030e5e527136ff0eed0adfd70a46e6862130bd4713a9dd346f72a"},"ros-humble-rmw-connextdds-common-0.11.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652271761,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"271d275c78a9abba94084b8a61c91a71","name":"ros-humble-rmw-connextdds-common","requires":[],"size":31705,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f89b2b7eea26a0188710423a082f3bc6b0a6e97a0629f0907ef5aa469081a58a"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670548393025,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"afd83a699c2acc20cb22884a9e863cfc","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":173744,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52cfba36f1bb008fc3f5ed4844188c4f879d7ab7223c41f4f23357b44c67bb66"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652375852,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"88b6224b86327c0f6dd63fab0210b4e8","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":176002,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faddd5875a9f451c96a4c25681a356633cad41a5703a5125daf9c83006b0ee06"},"ros-humble-controller-manager-msgs-2.18.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548475438,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2915f8c134b974f1e602d4d81988f078","name":"ros-humble-controller-manager-msgs","requires":[],"size":229455,"version":"2.18.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14e45f7daa3a00d5126bb93280128004815f42dc53b7da9e366ec9f6d8941027"},"ros-humble-controller-manager-msgs-2.22.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652447823,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ebe733b839681b3b634a8d32c765ff75","name":"ros-humble-controller-manager-msgs","requires":[],"size":249691,"version":"2.22.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d98f526ff5dba94e15ddb69b6461e9970e71dcfbd8e57d865c05ddb5d0715f7d"},"ros-humble-std-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548149468,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5f2a1ae35ed86cf68c1f0c693f70b054","name":"ros-humble-std-msgs","requires":[],"size":227384,"version":"4.2.2","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56e0dcf394484d2481979528752bc92890115174810827a6282b34e662b999cc"},"ros-humble-std-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652104090,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"749a07f7af47e54a1b038d4e026990c8","name":"ros-humble-std-msgs","requires":[],"size":252586,"version":"4.2.3","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa72176cf7731e1d2f3a54454e83a70d5b9bf53c50c6b1fb3eff0991455a3c2"},"ros-humble-rosgraph-msgs-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548325300,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ec7282537da0ede6cd0381ab50a2a97a","name":"ros-humble-rosgraph-msgs","requires":[],"size":40799,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da21331ff440d5a7687ce12a121385607d368a6e416a2d9e8ca03953960ea04d"},"ros-humble-rosgraph-msgs-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652286131,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a20db40d9f2e335c834859a68593b749","name":"ros-humble-rosgraph-msgs","requires":[],"size":46153,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ee8cf6371360cbb23705a0ce3104bec73ec66a4c7d02186e3083b26b90e2381"},"ros-humble-statistics-msgs-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548242827,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fcb4a6f2eb00909f66cb097725f75323","name":"ros-humble-statistics-msgs","requires":[],"size":68605,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"992715eeabb1a34a88acd785de44bc2e228ff3032af218b12df003038b939d3c"},"ros-humble-statistics-msgs-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652200414,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b3aa3043be5f83dbaec434a130f5eee6","name":"ros-humble-statistics-msgs","requires":[],"size":78095,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbb7d96f76aba37ce46086f8aeb805931f823c577b2e40fe6b1671d379b30877"},"ros-humble-rosbag2-interfaces-0.15.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548604095,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f64497a7b9c81816e156a1da6e57eb5e","name":"ros-humble-rosbag2-interfaces","requires":[],"size":151528,"version":"0.15.3","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f9a8e1514f6219ba817c1acda8c34a0b259dbd6f6400e4859e4dfa54649630a"},"ros-humble-rosbag2-interfaces-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652596022,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"25263c3233e2a5a4dfe3e043fa34b904","name":"ros-humble-rosbag2-interfaces","requires":[],"size":167612,"version":"0.15.4","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"515f44b570feb306bb2f04b2e539d4829dfa4cc410830045468cebd896dcfe84"},"ros-humble-ackermann-msgs-2.0.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670805147734,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bffa926abdcd6636f173bd25a9141be3","name":"ros-humble-ackermann-msgs","requires":[],"size":60928,"version":"2.0.2","binstar":{"package_id":"63927ba26643907e3b602285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8e86f37f895e2d8d050596f58fea5b81b9591140ffe24905b8d7b98e7bd6494"},"ros-humble-ackermann-msgs-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653466550,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c5ea4bb3a3eb6a789cf5f483f903ba9b","name":"ros-humble-ackermann-msgs","requires":[],"size":61379,"version":"2.0.2","binstar":{"package_id":"63927ba26643907e3b602285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fecf20e86b1279c41dcbc4c07fdeff6178d8c31f58b015d4fd6bc9e509bd5fc"},"ros-humble-turtlebot3-msgs-2.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678330896538,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f8cc1b6f1613b9c3bfadce168f6ef765","name":"ros-humble-turtlebot3-msgs","requires":[],"size":165325,"version":"2.2.3","binstar":{"package_id":"63927ba346bec18b89e70113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b24a51efb9adcadbe1d52b73dfaa94d5433a9456a2db28226d654ce815ffcd44"},"ros-humble-action-tutorials-interfaces-0.20.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549312503,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4434a4b32855cb0eae816334cdf07be6","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":90551,"version":"0.20.2","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0d299acb81b67773956f1252c7d3d8b4fac482de44e630bbf1a7697b0a0944b"},"ros-humble-action-tutorials-interfaces-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653682707,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"72df21af739f3518ffe98c3e1a0f3ed5","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":104171,"version":"0.20.3","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b69231b090931516f2d3517d0b50fa6344f419f4c303e63aef4131a17971919"},"ros-humble-ros2cli-test-interfaces-0.18.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549220051,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9423cf67f133189f16427a7e19901b65","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":119572,"version":"0.18.4","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7786621877f989738959727b3f9d91a0b02d920c59f2ba3ac66cf843067bd6d9"},"ros-humble-ros2cli-test-interfaces-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653582845,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c7cf42919b1474b25e8258d23aad79cf","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":140176,"version":"0.18.5","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4e886e346625723d4128bf808a3f682b2065501e7987eca0c85445b1527b5eb"},"ros-humble-example-interfaces-0.9.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549109997,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d3f1eb70da7d8f5e2c7a0638e825afeb","name":"ros-humble-example-interfaces","requires":[],"size":305748,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0bad84ea51b3411898b40bdb5f9f7de98735fed66a9129f5163de0f32a1b990f"},"ros-humble-example-interfaces-0.9.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653365914,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ff0ea1ff3c0dbdbc4b4d38eff6574b09","name":"ros-humble-example-interfaces","requires":[],"size":331589,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d03a0e0440e3fb673f1fa545a1b8a797da1ee557974f0826cb0fde3827ab105e"},"ros-humble-actionlib-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548896347,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b24e7e59c2a35c4aefaa32c00f9f3a68","name":"ros-humble-actionlib-msgs","requires":[],"size":69300,"version":"4.2.2","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f3bbbed269342982d1466dc10e0b4415b1b3f1ff2e18d50d15fec0ff3890a54"},"ros-humble-actionlib-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653146210,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fe0f2027a20e75909d455f1ca705b058","name":"ros-humble-actionlib-msgs","requires":[],"size":78934,"version":"4.2.3","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cdd1c82177cebee349bfad60a78329caf335488937351c0bdd96edd1d7a1d854"},"ros-humble-rmw-connextdds-0.11.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670549152042,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5525291cfd3a3fa3ed7511c18818bb6b","name":"ros-humble-rmw-connextdds","requires":[],"size":9095,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37b6a4b5c1a7dea3425d732abfba092355c1b202f1fc84b4c0f86752f104cac8"},"ros-humble-rmw-connextdds-0.11.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653255676,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1deacf05793f3446ca0d0c70fac5f13c","name":"ros-humble-rmw-connextdds","requires":[],"size":11121,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b70738acd0c3cdc3a6aa0c650726717bbff2c1c6ede5b8ef20b97628bc22ced"},"ros-humble-geometry-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549373182,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"34f740d8f814e17f161731a0fca04ec8","name":"ros-humble-geometry-msgs","requires":[],"size":226312,"version":"4.2.2","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76d2b2a79819e6b0444bc0acca8f8206f1d3daee8943302f7e48bd361e313eaf"},"ros-humble-geometry-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653474931,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d019151d23f4650dc6e80487995fa177","name":"ros-humble-geometry-msgs","requires":[],"size":246211,"version":"4.2.3","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71ad9697530d49364fb7d43dd9070619d09e796e63d43fce3a1cf20411516b7f"},"ros-humble-composition-interfaces-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549477281,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1cbb1a9df6870c8c4b03550af831aacf","name":"ros-humble-composition-interfaces","requires":[],"size":105585,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"009cc507331a11a17410377c900f5100da4a2833f7f8b24130cea3cc6a14ebfa"},"ros-humble-composition-interfaces-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653601182,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b46ce8ba2f35965ec745c065fa6511cf","name":"ros-humble-composition-interfaces","requires":[],"size":120756,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3caaa6ab1bf23651c42185bd88e039fe5dcd7c11e0ef4a149f0ad8d4152866e"},"ros-humble-test-msgs-1.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549079389,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"41685a7b8a301ddc68ee4b770487e716","name":"ros-humble-test-msgs","requires":[],"size":533673,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e190351b4d1ab45d90d4824c467e350521df376e54a344f7248054609b7da40"},"ros-humble-test-msgs-1.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653194061,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7e450a65906e89d68518abb8cccd7262","name":"ros-humble-test-msgs","requires":[],"size":617436,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fd993caa5b4905635e4e37bd6b7150e781bfffcde136af793e8b84b67052f60"},"ros-humble-bond-3.0.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549575382,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9c8003faffb1346fbdde7c999cae50dd","name":"ros-humble-bond","requires":[],"size":55799,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24e89c0fa22513c9567670c4bca82209a8ade5b37bbec55156df97d3db7f35bd"},"ros-humble-bond-3.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653714650,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"678c0b4daaabb2764de2e647a9df6a5b","name":"ros-humble-bond","requires":[],"size":63654,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d68ab963cc9b93c42deaca12921955d78b60b5429b09ff91de1c9962dac84563"},"ros-humble-geographic-msgs-1.0.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670805306998,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8f021723a86997152564845adbd87e53","name":"ros-humble-geographic-msgs","requires":[],"size":247305,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97f03ccb929bb61edf241c9fece72d097030c8e25ffda7cc1aa67045cd169434"},"ros-humble-geographic-msgs-1.0.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654797111,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"07ea931512152e9ac9cbd30884790523","name":"ros-humble-geographic-msgs","requires":[],"size":248398,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"140ae83cd18372aeba13a60378064f90a7920ffb6282200e8eebef30790718a6"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678330750421,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b4c80c4397901f8e83044fe5f84b10b7","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":305281,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af4f7c844734d41d55ba19ac4d22cbc867e3933e2d3a9858087b7a7e8605c2b5"},"ros-humble-diagnostic-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550137417,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b64b11f8ebdd6da932f204cad7d9c4f1","name":"ros-humble-diagnostic-msgs","requires":[],"size":105139,"version":"4.2.2","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3644a2783274ff7dae66494062ba3728250cb7aa69ff24b02d6674eac3d66a2e"},"ros-humble-diagnostic-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654314494,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"543488ad3bd67b2312c2efd802ed4afa","name":"ros-humble-diagnostic-msgs","requires":[],"size":121896,"version":"4.2.3","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"413d72e46ec6172f6e0be70efceffef10b2ddb12a828487b2237267f90f3612c"},"ros-humble-trajectory-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550373204,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a0dafe7b51330adb5b39958f8964f6ae","name":"ros-humble-trajectory-msgs","requires":[],"size":96227,"version":"4.2.2","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a89219b742f7f8a2bf5e01023127c8e285983b8543b0bb9c79aab2fcbbb5adb"},"ros-humble-trajectory-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654533737,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49d9f2476c1d5f30e115c4dec5d654f2","name":"ros-humble-trajectory-msgs","requires":[],"size":111556,"version":"4.2.3","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b828c981aa7b8939f25329046c77739d03e32b2900f17ae401beff76e666978"},"ros-humble-shape-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550256813,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"399c683a55d58aa8a718f4b22cf49000","name":"ros-humble-shape-msgs","requires":[],"size":80245,"version":"4.2.2","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dc35366f4fc5cdbf2c3ade9044c0e2c36d6759dd8378dafa1e5bdc55047c778"},"ros-humble-shape-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654421461,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d20851c64d42d47ef821226f8af8b719","name":"ros-humble-shape-msgs","requires":[],"size":92310,"version":"4.2.3","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4a12ae250ffef7242e732f2430f6c9176ea94024ac69a9c3343629547c0bdfb"},"ros-humble-rosidl-runtime-py-0.9.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670549857077,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cee272cbd8188b29dccc3c02bc95c4fa","name":"ros-humble-rosidl-runtime-py","requires":[],"size":23316,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02eca19d186dadd4f75a34c1f1dee8464851c273099b85066439d21a4d81d0a0"},"ros-humble-rosidl-runtime-py-0.9.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654080953,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"230935cbdabc4daa22f132dd1755c126","name":"ros-humble-rosidl-runtime-py","requires":[],"size":30578,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"919d668f8ba8da1147b554a0b571b3613d3a46f42afc8fce5796751a9f0b1c41"},"ros-humble-nav-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550014509,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cdbdb8d8d3524aaea206274c1bdf62ca","name":"ros-humble-nav-msgs","requires":[],"size":153676,"version":"4.2.2","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"229e94adb56533c759ad2345c131155b8b5b990b50b5afb8d0f456478e4caf71"},"ros-humble-nav-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654207791,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b07d384c261b59c2303e1466760fd57","name":"ros-humble-nav-msgs","requires":[],"size":170904,"version":"4.2.3","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc366dcdab34d571e53f2a326d4486873d23f1ff7f237276303359ede3e86677"},"ros-humble-nav-2d-msgs-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550118195,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d8564ae07a995e38b37e94a4dcdcd8a2","name":"ros-humble-nav-2d-msgs","requires":[],"size":80259,"version":"1.1.3","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ab0154cd17a568de29e9fb4e27d81efac5001252ed0ed1ad3a25558bc5a8ff5"},"ros-humble-nav-2d-msgs-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654308134,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3895360879e9e64e0b762ddd11c1eb6b","name":"ros-humble-nav-2d-msgs","requires":[],"size":90465,"version":"1.1.5","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb8acbcc77f369b48e095db09881a079d56cc2a7ed8c402b3a74cf66518c0067"},"ros-humble-vision-msgs-4.0.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550301085,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"10c03f03a0368f6342efd9c2766ac6f6","name":"ros-humble-vision-msgs","requires":[],"size":158324,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ff35c6ca3acf41c4b1615aa7d0cfdf11480bc4df80bbf2ef8cdb100610fd0e8"},"ros-humble-vision-msgs-4.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654454679,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c6dfd94939119ec2b6d9de2dac913abb","name":"ros-humble-vision-msgs","requires":[],"size":178908,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe96075436ec1ee64947ae477bd793fb4a6a1054fafd7e9a68e9ae0d56b1480f"},"ros-humble-octomap-msgs-2.0.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549986398,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a494f3377aaf0e598efce05aa335fb22","name":"ros-humble-octomap-msgs","requires":[],"size":91785,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb034f94bfb0958e7525d2b79a3b67a9be646e50a24750a2adcbf056e4fa7cd7"},"ros-humble-octomap-msgs-2.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654168541,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"455695a1a171001a492cea5b3377254d","name":"ros-humble-octomap-msgs","requires":[],"size":105947,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e42c259ffbbd1a5324fc90b5650a4fa233846850a8b9b20d0a96bd04916a339"},"ros-humble-ros-gz-interfaces-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550514635,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"506253a824f18693fe531ebd165219be","name":"ros-humble-ros-gz-interfaces","requires":[],"size":262530,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a106ba91e609e83a1952d321d24c088310140bdef8bfb31bf9f6b6d4b3082c55"},"ros-humble-ros-gz-interfaces-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654629709,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ed594ec03919d0610cc9eb953d8a378e","name":"ros-humble-ros-gz-interfaces","requires":[],"size":303248,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21a251524484c643bea33c998ef55158a6cb72f9fc993f10b2401bfcc6eebdbc"},"ros-humble-tf2-msgs-0.25.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550592301,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3104885d79eae0890d1bb052e792c45b","name":"ros-humble-tf2-msgs","requires":[],"size":128715,"version":"0.25.1","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7f40cc102a73611868c6cea8a05d1a2eab81caadf5d960b62a3d8aaeeff4b64"},"ros-humble-tf2-msgs-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654647524,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e4554655b24481cc94958b11b229ce3e","name":"ros-humble-tf2-msgs","requires":[],"size":141917,"version":"0.25.2","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e65083f284e23d14979e7a1d3eddda2c6c4dfafbb649890bd07547a8516a61d6"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670550120917,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"955cea5f3ff7e6b7fd6a40e9747d242d","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":147985,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ef338049fb0397ac248fc9d2a849ec66cd0f7a5798731926958689d7ded4909"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654104535,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f4b6e1667d30d0e4d19dbc1b3302e5d","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":150144,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27456d1aefcae13c36acac40088bdc743f9fabafa37ee83264a2e9529f9e8eed"},"ros-humble-sensor-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550491823,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"af0cc61d98691c4be727f6d53c8a6ab8","name":"ros-humble-sensor-msgs","requires":[],"size":361900,"version":"4.2.2","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"417a6cb95366e388c880c362fbfcc965e474fd848b700d435c1dd47a84cbe5f8"},"ros-humble-sensor-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654535572,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"583058ce7f6fa029e271d7098475793f","name":"ros-humble-sensor-msgs","requires":[],"size":403145,"version":"4.2.3","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc80824cc824e31d4012282057628b55596c81e7c234a5bcd97da2e6a72e6b73"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670550232909,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"92e1db49bdceeb3d06e4c49224ac1be7","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":113212,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c13a94d4eed08e0af2044711fced5903ac9d4cc289914b391b8dba426bc28cb5"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675654229127,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8eb083f8be6f07da8e69ff24af369f4f","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":115447,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d039537316977f17d75b272dd71c7536a37df232f6befb09b19985430179bee7"},"ros-humble-tf2-0.25.1-py310h06b5040_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h06b5040_2","timestamp":1670550302428,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"92b27777c3da517814ae72027b062bcf","name":"ros-humble-tf2","requires":[],"size":93977,"version":"0.25.1","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dfd418dd6087561bef402d0bac6eab08a92882312980d4ca0f9c5532104fc3fc"},"ros-humble-tf2-0.25.2-py310h10e9492_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h10e9492_3","timestamp":1675654315841,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"839a4fd5878972503de4ec7f278b199f","name":"ros-humble-tf2","requires":[],"size":96021,"version":"0.25.2","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36f71093ec0f8a2637547053ba97d5a70cf5d711f857ddb75e39281c704965a7"},"ros-humble-ros-ign-interfaces-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551160318,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8ebf477891cc57426fb6d42ab0fd1577","name":"ros-humble-ros-ign-interfaces","requires":[],"size":225242,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"776d7fa706c25ad054076b57df45cae94ca47f580297465bbd3f1a779232c41d"},"ros-humble-ros-ign-interfaces-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655636774,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"01b12bd03901a9b262f7fc5b87d7b49d","name":"ros-humble-ros-ign-interfaces","requires":[],"size":266210,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17c5a2389db33291cdb7afd3e998864fb9b575ef56fd85d9f0e2dee181f3b476"},"ros-humble-sensor-msgs-py-4.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670550997835,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cf93098e1c50994c430c69f76308e691","name":"ros-humble-sensor-msgs-py","requires":[],"size":17131,"version":"4.2.2","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91ddecee9322b48536c25304219f11ceb235fea47a48b0bd15cb01af08559a59"},"ros-humble-sensor-msgs-py-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655354893,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"abf0325007c832b7e68403b1589c44aa","name":"ros-humble-sensor-msgs-py","requires":[],"size":24979,"version":"4.2.3","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b976c4c7a9c84843db6ded99eb4c68b3f393d81fd4f6dac4844c8168f8a04523"},"ros-humble-visualization-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551347614,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ace5aea4582ce7523b8bf182a3cc6e2d","name":"ros-humble-visualization-msgs","requires":[],"size":232402,"version":"4.2.2","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4a8edb8c840b79dc8444fb86f1797ee53e87038912232b3b2a9192608b999fb"},"ros-humble-visualization-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655665798,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"06f7e4aabe93509a76c89e64ba43735d","name":"ros-humble-visualization-msgs","requires":[],"size":252614,"version":"4.2.3","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad29bba33e45fc01d117ee884bec19f2ce59c8d2e8ddd061997e0271a33321e9"},"ros-humble-stereo-msgs-4.2.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551461067,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4eabc602db5f8cb5dce98f02fbc73b46","name":"ros-humble-stereo-msgs","requires":[],"size":48676,"version":"4.2.2","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12c45266784e4476ffd7732e7272001f46d4ae6588501c77c48044537689929d"},"ros-humble-stereo-msgs-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655769010,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9698f1471ba770763badbd5f196aa585","name":"ros-humble-stereo-msgs","requires":[],"size":55627,"version":"4.2.3","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34f4cb415f3b8ad844d608bee6575d23d1027bcc9952ec75887388315ab24417"},"ros-humble-rmw-implementation-2.8.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670550929374,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13490afc5a214357a3b3f195c597e6a2","name":"ros-humble-rmw-implementation","requires":[],"size":25502,"version":"2.8.1","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4ff1a8043cff7fb804bc0b77c1c8cd2d5fdc4ad1eff07dd900c8ee89c198edc"},"ros-humble-rmw-implementation-2.8.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655298537,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ad00cc45949231e5cb33491fa7a2adfd","name":"ros-humble-rmw-implementation","requires":[],"size":27926,"version":"2.8.2","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9731a9f3f2c460f7cebf3c94cdfcfd018babf8fa77d39d7abc4723c2ac988b3a"},"ros-humble-object-recognition-msgs-2.0.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551155811,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d23bb52160ee46715831b9064eac7d70","name":"ros-humble-object-recognition-msgs","requires":[],"size":176836,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7576f48a84a1529f69319747ba38c582659639f0a191f97167135b0c3fec8813"},"ros-humble-object-recognition-msgs-2.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655487901,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"228efb6baead8d1e9240b57e8e9393eb","name":"ros-humble-object-recognition-msgs","requires":[],"size":196012,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf4f93e7a92ccee20fa1b0f0b0327f7a2203412eb97e70fb237175a32e0f3e60"},"ros-humble-cv-bridge-3.2.1-py310h0662082_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h0662082_2","timestamp":1670551406672,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4167f4455e9808ec137b7d10e9407805","name":"ros-humble-cv-bridge","requires":[],"size":110504,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1aa38572840adef7cac6ef65b501cd7ad1ec3e8dd5c5f9826b05bc343fa5550d"},"ros-humble-cv-bridge-3.2.1-py310h0662082_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0662082_3","timestamp":1675655916676,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cf3161b9b0a929c84b855109a6b43a9e","name":"ros-humble-cv-bridge","requires":[],"size":117896,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"744f2583a1939cdbeefb5381d707fc375728b2925432a3dfeb6dfcc7b2d73de5"},"ros-humble-dwb-msgs-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551244731,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"68dfd6a3263bd359efde4e1407753019","name":"ros-humble-dwb-msgs","requires":[],"size":154406,"version":"1.1.3","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c6ee85b97bf855dfd2d7828ac5166954b5371286a6679cdb7ae693716ff0292"},"ros-humble-dwb-msgs-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655739134,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d23fac3b510d7bd53057e0100853f484","name":"ros-humble-dwb-msgs","requires":[],"size":177793,"version":"1.1.5","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a17dfa9650e25439245a5b3e87d5e86c656bcd251fc3243d50000e9ea2a39f73"},"ros-humble-map-msgs-2.1.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670551111743,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6cb26cb336543f99943ebb5ee4cf01f3","name":"ros-humble-map-msgs","requires":[],"size":153081,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"127e7d5eaf5704a6b4d9b916fbdf8a8a6a8244ab3a162930646e7930c2514344"},"ros-humble-map-msgs-2.1.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655589220,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"306b553acc1b38f62fb517b0d2722137","name":"ros-humble-map-msgs","requires":[],"size":173881,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5dd4a22cbac9523957285e1c1d66da832b9de03c8aed7297739ee4ed20469fd8"},"ros-humble-control-msgs-4.1.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550981822,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b580e2855006aec730d5c6c9a2b84cab","name":"ros-humble-control-msgs","requires":[],"size":415659,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c93f42244f857b462ca1c9edab098c0d049a1da1837d7278dbcb5365882f0d9"},"ros-humble-control-msgs-4.1.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655441909,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ce0c70c2dc86704abb633db9108d21f3","name":"ros-humble-control-msgs","requires":[],"size":464867,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"535c5ccc209731c71459f62724012d43c6c176a2101572cf3a51e81331c2432e"},"ros-humble-control-msgs-4.4.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687845503612,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d254caf636e30a8e8df6640bb31ab27a","name":"ros-humble-control-msgs","requires":[],"size":503085,"version":"4.4.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d044e8bff025d89a1c08ea455157ae6e03076cfa1b30ce36e447818f37f5c56b"},"ros-humble-tf2-eigen-kdl-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670551479979,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f52192ac48887a3c3e24e72b48dce436","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":17025,"version":"0.25.1","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"456c4a4b71aeba433ea5e19c0bc0be399e45a3d5e60aad46c5c1e34487fcd309"},"ros-humble-tf2-eigen-kdl-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675656011447,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a2404f13935fa9515da3324379d68001","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":19284,"version":"0.25.2","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"520342c8dbd3be4536c6f71e2e176067b78c8cbe8d742d5e57dd6cd29152cccf"},"ros-humble-image-geometry-3.2.1-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670550990969,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aeb3791fd938556b08de7e8945261ccc","name":"ros-humble-image-geometry","requires":[],"size":37354,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"836df1749115820181f974047b80671c20bf8a562f39040b67aaf90d0c28c486"},"ros-humble-image-geometry-3.2.1-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675655445401,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f0177a3a0d4847cf08666e42bb9424c","name":"ros-humble-image-geometry","requires":[],"size":44648,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"837403775d22c6dfcec72477c7d0f6cd3fabd286ce94faf3fe7440c960c58c14"},"ros-humble-gazebo-msgs-3.7.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1677541437159,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b134744626949d72be27d4228251ede4","name":"ros-humble-gazebo-msgs","requires":[],"size":650726,"version":"3.7.0","binstar":{"package_id":"63928103d9a997aae723fff0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7175f23a0c9ba5ce19989407c84613ddb0dd109315b5ac3d9d884745e2efa76"},"ros-humble-pcl-msgs-1.0.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670550882684,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b55c4f7d4724b7a62401af442eec1154","name":"ros-humble-pcl-msgs","requires":[],"size":94882,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e7d1cb4c2e353fa367921d889dc5fe9d461016e852950e06c6d4dcb74877395"},"ros-humble-pcl-msgs-1.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675655334620,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa76451c63494f3e2ee6a1c575d004b5","name":"ros-humble-pcl-msgs","requires":[],"size":109192,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a1bbc93a659b6c5930c371c74ebe88fa4ad8f1795661537226df669b3657cae"},"ros-humble-vision-opencv-3.2.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670552452865,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"138940e88e7fe55ad34bcc413465d0b8","name":"ros-humble-vision-opencv","requires":[],"size":9170,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13f76605ab59db6ab5314c3b9342274c77358de7292ece3ba87395b6cd5f0a18"},"ros-humble-vision-opencv-3.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675656969246,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6d3e15ee4dea637aa3e9ea301969c8e5","name":"ros-humble-vision-opencv","requires":[],"size":11572,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbe546f481a3f2389a9873b69d29ff3053fc461c8ba93a6aff42e30630f42896"},"ros-humble-rcl-5.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670551749163,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ff0cbc3e639b5d906d34b975ee4748c0","name":"ros-humble-rcl","requires":[],"size":130613,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e6829225bea8207b2186e59e310cc0950f7e789bf672216d26e9557c5c2f169"},"ros-humble-rcl-5.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675656319709,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"01476c4c16daa6c642e612dd511a430f","name":"ros-humble-rcl","requires":[],"size":133260,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b025279aa644bd2c042617a637878256e2f25123042a3de6054754b1f0d2570"},"ros-humble-common-interfaces-4.2.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670552393727,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d94f4a578f8dafd8d9076ee849a4c678","name":"ros-humble-common-interfaces","requires":[],"size":9348,"version":"4.2.2","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d54da4cfef54b0b94b62f5d0b9ef29c8a59ae5032d6261c1c1b900ea49a102c"},"ros-humble-common-interfaces-4.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675656896079,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"00d7d67ab81c729d2ebf7ac401114b59","name":"ros-humble-common-interfaces","requires":[],"size":11235,"version":"4.2.3","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fc8a62d2e2e7cf1fb64957b8390412ff4d0610b94111a91a0121e43b8aa47df"},"ros-humble-moveit-msgs-2.2.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670552332156,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4d466fd927fc9a97fe96527318a0157e","name":"ros-humble-moveit-msgs","requires":[],"size":1225364,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab6eac328f757efe459f58bddcd68c2496685de3ee480aeb86939d96a0a10885"},"ros-humble-moveit-msgs-2.2.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675656829621,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7dfce8df32587109d3664d0aa7d48970","name":"ros-humble-moveit-msgs","requires":[],"size":1380847,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac1c0a94fb652a5b264cd4684486ccd42d08999c2b7fa04c2f562767104410a5"},"ros-humble-rcl-action-5.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670553022195,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5ab853c282c31c5bbfa538b9deb9b802","name":"ros-humble-rcl-action","requires":[],"size":47989,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a81695bfae6436492e970da16c2badecad2f7ce56eb5c5afc518826ea421123"},"ros-humble-rcl-action-5.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675657673402,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"273b7d2e17ad48b021f061368ecfcea4","name":"ros-humble-rcl-action","requires":[],"size":50514,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cca934a12964f32daf5debba8ce9adaa2a27afc00a3945b07547ff8f728c403"},"ros-humble-rcl-lifecycle-5.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670552961218,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"73f9f7d7f919ebf4d17e52b85c3300f8","name":"ros-humble-rcl-lifecycle","requires":[],"size":28314,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e9dee3f6b6677226714782ef1aeea8c5fb887df4d5086c9e28e89a069349459"},"ros-humble-rcl-lifecycle-5.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675657591772,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ba747c12c35df4678613d10f8a2b302d","name":"ros-humble-rcl-lifecycle","requires":[],"size":30853,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16156edc0c2231603f14eec4787f4a1edd61a0b2586a604926654173fe3c6ff8"},"ros-humble-libstatistics-collector-1.3.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670552899599,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"61356abff6f59d7aa620be7b6466b88d","name":"ros-humble-libstatistics-collector","requires":[],"size":30498,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dee0a18cc094718e630ac6ae4e38b4406367a087ea02241b4a427c58897a8b92"},"ros-humble-libstatistics-collector-1.3.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675657505646,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d304f258a667280cb2da5796d101dbef","name":"ros-humble-libstatistics-collector","requires":[],"size":32948,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9cf5d1512dcca5b30a5cd2b2b3cc816c57f085e86bcf99df49fa11111d6801f9"},"ros-humble-rclpy-3.3.5-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670553844638,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c907e419040a08c4bf0e3932b9a7b75c","name":"ros-humble-rclpy","requires":[],"size":486007,"version":"3.3.5","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a9cc73500e1d101ff7c659ab99154dccd545c35b90b4e7963dacb1d85bb07b8"},"ros-humble-rclpy-3.3.7-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675658666924,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"54bdf95f8d05861df11335be2f7abc3b","name":"ros-humble-rclpy","requires":[],"size":596215,"version":"3.3.7","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7046d57bcaef763f015b8cd3c8ffabb1eafeda69e312e806cdf6a184065d04f"},"ros-humble-rclcpp-16.0.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670553558982,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"519056fa229e6ba7c5cc8294e2467d81","name":"ros-humble-rclcpp","requires":[],"size":679111,"version":"16.0.2","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ed1c4cd8b0f560ae8b341adcd6638d285322698b408adbdda15ed059907b1f5"},"ros-humble-rclcpp-16.0.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675658368892,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"01e004a5faa1168ea163fcc08ac9bea5","name":"ros-humble-rclcpp","requires":[],"size":679565,"version":"16.0.3","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62d776663c372fa0c6db6960929da77e6528141f09355948ca970d30330d304b"},"ros-humble-examples-rclpy-executors-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554208066,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4858f65cb4bd5457af4d81e71bc830d9","name":"ros-humble-examples-rclpy-executors","requires":[],"size":16252,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d464327a4cf986f5661372d90f34eaf8f902abd39b3dd9f35d8f1865beb5ec7b"},"ros-humble-examples-rclpy-executors-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660037557,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86d279fca0389c9c34507d59e140fe86","name":"ros-humble-examples-rclpy-executors","requires":[],"size":22954,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c7b6fa360ea1c77d4567be32cb280bc55f3730f58ab8697ba88f9cc8d052301"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554471598,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"96bb1447852043782fe90109c6f52cc4","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":12040,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df2a4835922da3f1374a5639af7b27ee9cca061acba17859d7121085dd352fb8"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660216717,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c520823efaa27ed5acb764c2d222e93a","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":16668,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d65ac08d46937520ac8e6b9811574bdecc516414608cde9b999c237530e1e3e"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554102917,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2954079d0ab2ee9fa3c9f77fac164753","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":15334,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72addf1fd290b940cf5045843a164db5c34ff4fb8c57b70315857d65bc1f34e3"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659936318,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4af9291c2bc2fd53ddbc949b089f9d67","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":22925,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e45e92e24413baa83fa411949c3704ad1688273afd7ad47ea32d096e16044374"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554424204,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"646564e72593e3d62845dbd85fbe0cc8","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":10721,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41fc0eb30b04b519a76097625349b093b0b4121887ce9585e5efcbf5850c655e"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660164917,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"591b78ff7dab721777aded09fe6bf6ca","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":14451,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e48a628f15c797748dfb068b0c0fa26bd5221a717b3766814ed973c7a1e1fae"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554153782,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"315eb076a383eacfa562a393368d48ec","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":14068,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2c760d555b2bc9a05816d47f37dbbc1381a547b741f94aa4aec28126bf5a98f"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659987572,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"601f7b48836de800498f922bde37896a","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":20574,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fd059b27801b3ed18c448370d231898fe185182ed2fbc19f470fc135aaa2256"},"ros-humble-turtlebot3-example-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332240781,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"291b7869114b258e638902877b6efc57","name":"ros-humble-turtlebot3-example","requires":[],"size":29365,"version":"2.1.5","binstar":{"package_id":"639286e46e0eca100b4a1681","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"351c67f534de84b9f827c8074be1ba9dde1a44b89a2842dfebac74d0515ce1d6"},"ros-humble-action-tutorials-py-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554954478,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1d5c5ab7513ffada6a1f09855cf4fd7f","name":"ros-humble-action-tutorials-py","requires":[],"size":10363,"version":"0.20.2","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6cc101c6c1ac063b62806d402093652edb5a0d389ee715b5c49f630a76427632"},"ros-humble-action-tutorials-py-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660130997,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"077a56e2fa0265b9d3731c4e666b94a3","name":"ros-humble-action-tutorials-py","requires":[],"size":14768,"version":"0.20.3","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c5368f3f85c6854e09e047368ef8e532d1693cb08a6daef564f26e437efa4b3"},"ros-humble-turtlebot3-teleop-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678330325765,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6ffceac6b9efa30f17ef4a2435086c8e","name":"ros-humble-turtlebot3-teleop","requires":[],"size":16077,"version":"2.1.5","binstar":{"package_id":"639286e7a2b71210080fc9b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cdf5f7bf98979409a0cb67732f4322b03e0d2fc1fa6cf748d76a446c3a9c8d0d"},"ros-humble-dummy-map-server-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554816353,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95be3f4db2f557a53b95e765f29f9aac","name":"ros-humble-dummy-map-server","requires":[],"size":63263,"version":"0.20.2","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb4ff3abc93e7826d9206449f7917bf6da645370ba6382fbe14326b2a77b07ea"},"ros-humble-dummy-map-server-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659340041,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b46d63c4d760a62733932ddada1bf645","name":"ros-humble-dummy-map-server","requires":[],"size":65804,"version":"0.20.3","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd6f7dd0311703c92097a03113a0f3b7c38bfce27f7dffef897a9fc7e607b5d9"},"ros-humble-dummy-sensors-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554745792,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0ba96007117c83edb511320f463aa1b7","name":"ros-humble-dummy-sensors","requires":[],"size":90373,"version":"0.20.2","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c151108ead35d24cd4b0353d077ed1aeab68bb4b1c1eafb09240a28a4023f933"},"ros-humble-dummy-sensors-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659244998,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2c6e92b23a3987bfeccabc8c9b4e1bf4","name":"ros-humble-dummy-sensors","requires":[],"size":93049,"version":"0.20.3","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84e8e87f9a9faffda9fad70610d290e42ea6cf8c89203b0b0f97e3c4bc737aae"},"ros-humble-hls-lfcd-lds-driver-2.0.4-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1678329912813,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c0d259f850ff52aa37876efadb4e99d0","name":"ros-humble-hls-lfcd-lds-driver","requires":[],"size":110432,"version":"2.0.4","binstar":{"package_id":"6392870d46bec18b89eae551","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c30747575debd92e973c655ab822f17979517a04e9112620d91d500252a3c973"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554673311,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fb74ca306ef1da3319d2ebc174f16c54","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":11220,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58171ef43d56f9d639d5d3c659cd017a16bafd5433a7692ef0a8a7ca560b71fc"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659139132,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8b1a04c598ef8afdd992e3e2da559076","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":14903,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84f29fdee420ad8c55a8198ee410322ff9046bde317cc6a55f46c719612e7c20"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554893088,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"59d0a46516d03d5d2cc8ff8b8d69735d","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":31050,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"485275b7fad8ece7b093e4f078df95e3aaa0b75be705eac6588c7dd723598caa"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660066985,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8a59063e46a8e94caa6da4de1d60e276","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":33600,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84e87517e84a0fd833f4c9d4d1e6a20eb0650f0f7d19167bb23722d0e5bf917b"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554810587,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea3b2e86fa5d707d1a74e1ec2398abb1","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":215815,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5273822417167a45e57e0beba8c57f977aa99097fe79512bb694cdff6aadaf03"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659971335,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"743873a0ff39100275d5237bea5ea25b","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":218179,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dddc32914423e560943fecf58e1e3b5b05d844dcc53bb5eb623eb27be315bb8c"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554420167,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"85bb2fca994f1d3e68252056932a0bc3","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":22075,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c5753f7005624aedf36fb60d4200b4db46a9b925257091b82403b602fbbf2a3"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660268675,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6249957a785e6cab1b41c732e88dbc6b","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":24607,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bd928a49b7283de807d0cac17128c4527734ad03403c7ea292d3433d890b5d6"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554691730,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"da0066bed73eb1d4957e2ca9afedd9eb","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":27994,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4e27b9bdb0cdba090e0c1d1ce204d954928b7db739893bca7fe7ebf430c8dd2"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659844355,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c2fff2edb1e2755c53a42efcd264d906","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":30573,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59f3f64d6b21ff753a6450261d920b21cdcd04b08718134c47605859f8676eb7"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554324380,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fc389657088705c10dd8c42b3e6f9302","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":130906,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e4a5390c0f6787b02ff0fcc3a49634822d3cb9406561cc852f0b9cd86927996"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660172711,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"306ca8b87673fe9aa31408b8cdb4f2bd","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":133297,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96c2599966cc34c1f97f30f93c33de031f8ecd0f21b4b6a2028e2bfdaf2fcb27"},"ros-humble-launch-ros-0.19.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555027773,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1c98660a98484c23d68312fcd87e6a41","name":"ros-humble-launch-ros","requires":[],"size":65453,"version":"0.19.3","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3e873ec0845ba6a8ddb57afeac30f75cfde5a800b27bf98cb1ad9d722342192"},"ros-humble-launch-ros-0.19.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659275321,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"116c2e08e854d0a08f863e024b37d8cb","name":"ros-humble-launch-ros","requires":[],"size":107453,"version":"0.19.4","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4517eb7f1e3f7f4cb5f43d169695e10d150d9c9a24794c2b6dc128b664f4fca9"},"ros-humble-tf2-py-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555093094,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4592953ce79977e8e5659c338a2c7170","name":"ros-humble-tf2-py","requires":[],"size":27417,"version":"0.25.1","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e55b54f885f930b7565516fa74c9781a80357bbcbe75bfa2e24db5a4df5fc134"},"ros-humble-tf2-py-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659358863,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d5aa5f87bcb34844e13d1bd2858b32c5","name":"ros-humble-tf2-py","requires":[],"size":30285,"version":"0.25.2","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4de9f05fd9df1bc79940c09360b138375e723a6d18217f86d172242e0c76631"},"ros-humble-rclcpp-lifecycle-16.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554980375,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"89ae394167e1a8208659ec491c8e7626","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":79346,"version":"16.0.2","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64901a49cc4eccc043c642855a6782ac63da9f0a1791eef1a731336755383985"},"ros-humble-rclcpp-lifecycle-16.0.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659211281,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dd836aa367cd6c3fde9e51450c9d9dbb","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":82019,"version":"16.0.3","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"489df80a492f3d7cc0dbf9e9b13252b5c079b13e579fe0ad195630637f6ef941"},"ros-humble-rosbag2-test-common-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554183717,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"61531fd527a9a9d84be683b6a6b6d3d1","name":"ros-humble-rosbag2-test-common","requires":[],"size":18216,"version":"0.15.3","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17c331844cff5fb12cd2df32fca7fe48983157d178afc51189b40ac4372e7ee7"},"ros-humble-rosbag2-test-common-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659254259,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"69a1861d03bc61ed5e6fb7deefe508fe","name":"ros-humble-rosbag2-test-common","requires":[],"size":20804,"version":"0.15.4","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0488e93989d1989320a3884259dc3babeefee32892cfb303e99997275478e034"},"ros-humble-demo-nodes-py-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554856987,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7df4ece9dd984e225c4780af623edfde","name":"ros-humble-demo-nodes-py","requires":[],"size":16267,"version":"0.20.2","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9acf6a49e1db3d294d5fbee63f86746437a293b7360a1acc3c69915005c07abc"},"ros-humble-demo-nodes-py-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659390958,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13305b6ec530d6151f8dbd75e6b75598","name":"ros-humble-demo-nodes-py","requires":[],"size":23073,"version":"0.20.3","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b82fd6013800b5b843b2765cecfa46d2defda63e937ea4f70db58ee6a836848"},"ros-humble-ros2cli-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","argcomplete","importlib-metadata","libcxx >=14.0.6","netifaces","packaging","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554113246,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d7b87313872c801d2fba5e2aa1f3f861","name":"ros-humble-ros2cli","requires":[],"size":42252,"version":"0.18.4","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee66f05660cfa53d6a9460ec19bc7c8ab2921a32a6f38843ad1edaac04d1c87c"},"ros-humble-ros2cli-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","argcomplete","importlib-metadata","libcxx >=14.0.6","netifaces","numpy >=1.21.6,<2.0a0","packaging","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659178657,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"38ee3787d3b18e2332fed3a88874bdf1","name":"ros-humble-ros2cli","requires":[],"size":67191,"version":"0.18.5","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d052f8e909bb8501e61813e6b2c30ce106056e7654e85b7b9fd07038c8d7af95"},"ros-humble-rclcpp-action-16.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555258198,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"71ccb291578ce382369e09bff92c4dbc","name":"ros-humble-rclcpp-action","requires":[],"size":75049,"version":"16.0.2","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"264b4e7bacdefe3778521d0d6c1e3a912fa1f6da541b4410e5b2b0ff35e0a4ca"},"ros-humble-rclcpp-action-16.0.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659568806,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b41c7ddc998abe0397d8e5047d96b48","name":"ros-humble-rclcpp-action","requires":[],"size":77740,"version":"16.0.3","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e05f6457e55735473436c66e5eaea08b1f3d780d24fbbb60c094ed99ed53b1ac"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554376759,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"756757b3b5876395ac0c78fb11b62c04","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":9634,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a72b458b6c1f5778d31cf22870d216dd7794fc78814cef3c963ab48929c9812"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660118049,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"809a2ba0bd77fb60d47dddc82357acef","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":12909,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1daac6e95167210cc58a5cfcde4a510ede6b256ba4e0865525b66de2d2fdd19d"},"ros-humble-laser-geometry-2.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554312054,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"39f939ef5d89fae792208a2a01b9dea5","name":"ros-humble-laser-geometry","requires":[],"size":32986,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ef593763f99ec894e9003a230b69c6be7a6cd09ca2df472a90843be83181668"},"ros-humble-laser-geometry-2.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659389292,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b84f1ebf71dee5b69520f2355530ca05","name":"ros-humble-laser-geometry","requires":[],"size":38784,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6959ad24a2355eb97c812017e6cc680b7303cc6110bc286f10ce19f455276af"},"ros-humble-rclcpp-components-16.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555185819,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7b99c7d0c40724b8516b462929b6fde7","name":"ros-humble-rclcpp-components","requires":[],"size":93776,"version":"16.0.2","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84d0f162b8a3b7ca5f4d207c92b66c6f29737c76b69cb7d5512eb07fd692d78e"},"ros-humble-rclcpp-components-16.0.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659468428,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"06aa2862973c85611e1ff64b58a5d00d","name":"ros-humble-rclcpp-components","requires":[],"size":96616,"version":"16.0.3","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be2fe69cdfc94e0e67b6bc6a3974c7849dadd37485bce87b191f1f74e825eefe"},"ros-humble-intra-process-demo-0.20.2-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670554274783,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"82adf23425cad5492726f8931515b488","name":"ros-humble-intra-process-demo","requires":[],"size":765461,"version":"0.20.2","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9333b6e9da4e3800938ada74aa6327f7b2eea4f4381f2f34d1d5ba0d73629f8"},"ros-humble-intra-process-demo-0.20.3-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675660010507,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17b1a230870b5d82066941f74535cb8c","name":"ros-humble-intra-process-demo","requires":[],"size":764689,"version":"0.20.3","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27238b5846ac69d735673d030949561f18f5a77bda50dc483b90b5ac99f52e9b"},"ros-humble-urdfdom-py-1.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","lxml","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554231953,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"05bb30904e3467af1a423a18152c5495","name":"ros-humble-urdfdom-py","requires":[],"size":32430,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"149c2105e63001c76bf362e1984465f1772a575bd9a55881a4650d6169ec0bfa"},"ros-humble-urdfdom-py-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659300037,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"06ed826f7202cdddbf02505f9f5acd93","name":"ros-humble-urdfdom-py","requires":[],"size":55995,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdde8884f4f52e86adb2a0479ab23d5d40a7b8100ba1b6dffb164d4e95040d28"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554334345,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cb4486e8728deae739aa779cf522e8e1","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":10290,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4517f0d4574669a06d12770305b2a9e93d7efe84e8937c1d245bff67c4ea8960"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675660069862,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"52fd236a8c749e482d2616f2557aaca3","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":13748,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d8c93b871f4b6f34906c4347768bfc551ede523b2f0db80a857d78320bf85f4"},"ros-humble-geometric-shapes-2.1.3-py310hf0806dc_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.*","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hf0806dc_2","timestamp":1670554467047,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3333c4c0cd1d4123d908f19b53cbf0f6","name":"ros-humble-geometric-shapes","requires":[],"size":104245,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9230517ad44f4daf29c2fc23cb840dadc1e6666d06b964c5783b61cb60901550"},"ros-humble-geometric-shapes-2.1.3-py310hf0806dc_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.* *_cp310","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf0806dc_3","timestamp":1675659541391,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6fe3cc538d83df1eea3f19a905e2b9dc","name":"ros-humble-geometric-shapes","requires":[],"size":106802,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9903dba981dca6ea2ab605f53f3c82cf350181c8dc7b9fed2d07555b02177b29"},"ros-humble-quality-of-service-demo-py-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554893959,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d17e923e0d5195b3d240868cc12d4fad","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":20889,"version":"0.20.2","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30810916d49978f266861cb8ba1e5ce75733e5b13813f2886470900ff91192e5"},"ros-humble-quality-of-service-demo-py-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659441484,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"76f5eec02fa0b33564a99389025eee49","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":31337,"version":"0.20.3","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5a3eb4badf2e9210deda333fc1c5b713345c3d3c7f8cce3e7f30b6c6a123ecf"},"ros-humble-camera-calibration-parsers-3.1.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554186238,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2d36f5ac537c7e1afa968f151589d728","name":"ros-humble-camera-calibration-parsers","requires":[],"size":65627,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a88aa365b8c8c68337132748bd2151a977a04bceb419725eaacffb8a7e5ff12c"},"ros-humble-camera-calibration-parsers-3.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659290814,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0f91b3745791e7b0da4d4c4982f86455","name":"ros-humble-camera-calibration-parsers","requires":[],"size":68313,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c1a3e147de5f7d60d3f17715d574e493046f9d69838345c246e5e6e4deb88a5"},"ros-humble-rqt-gui-cpp-1.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670554755634,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ff40d22c06e005b386cf58ea9c0ea3e7","name":"ros-humble-rqt-gui-cpp","requires":[],"size":113601,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc64c4e502f66e21e0820d213ab11ddce963279e32f17661bc4d79a2075d0589"},"ros-humble-rqt-gui-cpp-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675659619279,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2fa5115cbd4852c23311a619ccf5e04f","name":"ros-humble-rqt-gui-cpp","requires":[],"size":116901,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3a80bef16487501a4c0d141f5c6ae50b801394d84300fb1287f3b32a73ca7bb"},"ros-humble-filters-2.1.0-py310h849549e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h849549e_2","timestamp":1670554573117,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e73abceddb5a9d87abb60e33c6417bb3","name":"ros-humble-filters","requires":[],"size":68997,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afe073b04afb7728de57ab7099278729dbc88014da7f6f6c670485aa2081cd39"},"ros-humble-filters-2.1.0-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1675754504940,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"30de99d2da58a4bdd9bbb482bbeb4315","name":"ros-humble-filters","requires":[],"size":71544,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b93c2a0c22eeca7e3f09c304602e7298ab3d4f3ae6abb506944b88c0329f9db6"},"ros-humble-ros-gz-sim-0.244.9-py310h5566d09_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gflags >=2.2.2,<2.3.0a0","libcxx >=14.0.6","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h5566d09_2","timestamp":1670555070417,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f63c2c799b7db113b96859f9e67d83e","name":"ros-humble-ros-gz-sim","requires":[],"size":177843,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"486a846a0739786961e64ca45a84569c50608d518f18c0ffe6a9472e62157046"},"ros-humble-ros-gz-sim-0.244.9-py310he7a2e77_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gflags >=2.2.2,<2.3.0a0","libcxx >=14.0.6","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310he7a2e77_3","timestamp":1675659893184,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ee5612a86ea0a75c06b4e7cf49e0dc7d","name":"ros-humble-ros-gz-sim","requires":[],"size":183418,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4bb22b20f322e8ce3da907d1de680317dc8fc30957d6bd27d21e9eedcdf68ec6"},"ros-humble-behaviortree-cpp-v3-3.8.0-py310h9e70230_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libcxx >=14.0.6","ncurses >=6.3,<7.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zeromq >=4.3.4,<4.4.0a0"],"build":"py310h9e70230_2","timestamp":1670554592835,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fbdad3b4ef24f91e39472ebf9eb27251","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":334682,"version":"3.8.0","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4784655452d4bc233b6c352135fd63b7a8d835b03a00349d6af530f5afdd26e5"},"ros-humble-behaviortree-cpp-v3-3.8.2-py310hcfe0068_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libcxx >=14.0.6","ncurses >=6.3,<7.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zeromq >=4.3.4,<4.4.0a0"],"build":"py310hcfe0068_3","timestamp":1675840657472,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d7618c2acdf84bad95a928c0dc2c010c","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":340464,"version":"3.8.2","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0edd8fdc4e272b6b46e49a0ef3c3d32e169e89ebd5baaf487c10bf9f69c22289"},"ros-humble-rqt-py-common-1.1.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670554787013,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"db709587bac84342d4e6ec7afa539675","name":"ros-humble-rqt-py-common","requires":[],"size":41301,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac7dec07c242e914b143545b4a2f190f91758200abc0fa3eff904b1aba49d1db"},"ros-humble-rqt-py-common-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659191385,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ac402e4ce67aa8ab574a873da4f4eaf2","name":"ros-humble-rqt-py-common","requires":[],"size":65224,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b540fa9cae8614c165f910b2c21d8371590a0e0ee66bf0e4d37a00c5c677dc4d"},"ros-humble-rsl-0.2.1-py310hc989f5b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc989f5b_2","timestamp":1670554168954,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ca363033f20d29577ac0d22bacf6204c","name":"ros-humble-rsl","requires":[],"size":23131,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffa9967450e81678e302c04d63056fa00a2d10f60e5581103e08b6c16b88611e"},"ros-humble-rsl-0.2.1-py310h6d6df25_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h6d6df25_3","timestamp":1675719902852,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2de80fc97b4f78095b9adea893237862","name":"ros-humble-rsl","requires":[],"size":25712,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0062cfe4096e09e45eda6fde305e29e26d49d485ec9dccfa88f90a401383a6c5"},"ros-humble-launch-param-builder-0.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554233171,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8343e1bd97a6ea36ef7d8a57d55525bd","name":"ros-humble-launch-param-builder","requires":[],"size":14810,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d612519a09bfb99e85ff51b91e3e3cbdcdc6afc43a1b0fa12b00b7b2b6879c51"},"ros-humble-launch-param-builder-0.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733216918,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"deb93c3f0ba0857f8da408710be106b9","name":"ros-humble-launch-param-builder","requires":[],"size":19021,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3d06c2f1b80b1b628e25c14a6f190169aa764b3b4f5fdfe8b6180d81031939b"},"ros-humble-rqt-gui-1.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670554693138,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a778e18cb115ed1e57304b71cee8849d","name":"ros-humble-rqt-gui","requires":[],"size":104062,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2048e607f23bdae3b69414db084032c95419ac7cfe090fb264e0cb0e9979b3bf"},"ros-humble-rqt-gui-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754326329,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"91949392ef8a359419b71dad85e454d5","name":"ros-humble-rqt-gui","requires":[],"size":113667,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"653a1660b59fd3336db8fc8756725c97816f1e48212af826f5d5ede7318257b3"},"ros-humble-bondcpp-3.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555996129,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9efac8abf2aab41a27e2ab8777b9a690","name":"ros-humble-bondcpp","requires":[],"size":167899,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8492400895c6d8d6c0bb4885e15e426819f3ce2df20a3cbde9252c85601e8fcf"},"ros-humble-bondcpp-3.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683418104,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fba83dff9a17a5d44eb2485106133b28","name":"ros-humble-bondcpp","requires":[],"size":168646,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b10b1868e3a902f8fbaf08de0763a9664fb7939a0e1d642207945162e08faf94"},"ros-humble-tf2-ros-py-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555844625,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2fe4a9f18f8ea541f9b0435d62d6235c","name":"ros-humble-tf2-ros-py","requires":[],"size":24709,"version":"0.25.1","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bdca0879b03e71fd7be47634c0758f341526c94eabc4665883944618d4327e9"},"ros-humble-tf2-ros-py-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683225793,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9c7c4cd596eed23ae04aae27df4c8812","name":"ros-humble-tf2-ros-py","requires":[],"size":38495,"version":"0.25.2","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"298be5759c097735168f92be96f825053f1d251993d3b6b9d3306cf7a4e5ac23"},"ros-humble-nav2-common-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555901467,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"38621c52c1e1816bb53930741fbde67b","name":"ros-humble-nav2-common","requires":[],"size":17999,"version":"1.1.3","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84f0348055e0eb62012037b96a66b0b476c4d2bd08be6e571b3426d312109523"},"ros-humble-nav2-common-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683292665,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dd3e337057f8e4a61154d778e66e0bcc","name":"ros-humble-nav2-common","requires":[],"size":26254,"version":"1.1.5","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c605b5c5567f3a69a42f5822342898d907b99261e868979c17177917420e122"},"ros-humble-launch-testing-ros-0.19.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555797445,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1caf378b85d660b5823e1ab0d08d174e","name":"ros-humble-launch-testing-ros","requires":[],"size":25981,"version":"0.19.3","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5617ad9c1204e6e4244da50bb0b4c92ce2977ea502b8a579d09c2bb707e6a470"},"ros-humble-launch-testing-ros-0.19.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683157475,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b226572fb5126876b470f2fa4eddb069","name":"ros-humble-launch-testing-ros","requires":[],"size":36923,"version":"0.19.4","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feff25a6d380f0b8d94413b6da0884c7f42e1aa7af191e8643c6276e3ea0ce17"},"ros-humble-message-filters-4.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555744173,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"96ff833dfd987b46538ef7d91b11ca96","name":"ros-humble-message-filters","requires":[],"size":43537,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc6233e51b39c1a7097a2175204f0cb0c4a6f33e14161f65cce7a5ee8ab9fa2c"},"ros-humble-message-filters-4.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683094053,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"91349951e2821c308ec4c8b4d85d6423","name":"ros-humble-message-filters","requires":[],"size":51405,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3759924f84385156a179fdd0f1fb5f5ed7c456e080717f8fbf1b32dd15d26087"},"ros-humble-rqt-gui-py-1.1.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558652099,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"711a09a8106e3cc0ebbe58be3d778b14","name":"ros-humble-rqt-gui-py","requires":[],"size":11364,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c03f159c9f4c9e2677aad482149dc1c2e1fd786996bd7f4de4cf7ac28bd4bbca"},"ros-humble-rqt-gui-py-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770714538,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"30fe15e216e2d692725ad471671d3041","name":"ros-humble-rqt-gui-py","requires":[],"size":16462,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d27ccb886fd5fabae8324b8402a1e7fee7a907d16308ad1ea0eeefe5a26120e4"},"ros-humble-realtime-tools-2.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558759298,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b515d53fef0f17fdc9e9b26c1e97024","name":"ros-humble-realtime-tools","requires":[],"size":24544,"version":"2.4.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4578eca26fe31d6655964d3c2e069424d67033f191ddf46002c6e9a8761a0936"},"ros-humble-realtime-tools-2.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733159186,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"def11e9756e68dd5e371bbb981e6ef9b","name":"ros-humble-realtime-tools","requires":[],"size":27467,"version":"2.5.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6e5ab8a63a81c0992072131bcae8922237f094787853541a712659ad9514363"},"ros-humble-camera-info-manager-3.1.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558561650,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5c4e5c4f1e8bce0aed0ef9b603131bda","name":"ros-humble-camera-info-manager","requires":[],"size":43545,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d30db957f579d3c68a68f63c46ea57995cb291672db469f471d99049df558cbd"},"ros-humble-camera-info-manager-3.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683237970,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a2adc42f2a2a9aa5dfe818f410056e38","name":"ros-humble-camera-info-manager","requires":[],"size":46140,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f62b3aea1e07a7d1f7e3a0521c44865c4c1de51af1cce052c881dbf909aa37cc"},"ros-humble-ros2multicast-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558737575,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fbd99fd61ce26729557feaaa408ea03a","name":"ros-humble-ros2multicast","requires":[],"size":11852,"version":"0.18.4","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b95b5bdc9f5ff397aaa7e3faf958a4b4569e57ecd12e1255ce058984a9114614"},"ros-humble-ros2multicast-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683140796,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b7a3d296af9d8c66e638ec51825dbe12","name":"ros-humble-ros2multicast","requires":[],"size":16886,"version":"0.18.5","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d37235110ca1a3750f4faa4d2ab1b7992c03f6b3615394bb9173d1d9a2f1fcd3"},"ros-humble-ros2lifecycle-test-fixtures-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558937993,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"011c056ef72c9c2ee4f82a27d6db0ea9","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":16517,"version":"0.18.4","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"915ba196cc4ea3a9d5a5103c919de45cf16ad53add851706fa8852911fbfaac7"},"ros-humble-ros2lifecycle-test-fixtures-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683037008,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a0c4c43b0d7519e5b2275e543db08b9d","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":18997,"version":"0.18.5","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56f714d367e62ad576989f7e68b2fe07e74a341ec18cb5cab0d7915e8a5c6899"},"ros-humble-parameter-traits-0.3.0-py310hc989f5b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc989f5b_2","timestamp":1670556051375,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fd7b2c4d56bcff45dbe43dd6c6dbbcef","name":"ros-humble-parameter-traits","requires":[],"size":12680,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d2ce934854d13eb97b0f16c7f8f349a3e6a507632e66bcc1389b243847fee81f"},"ros-humble-parameter-traits-0.3.0-py310h6d6df25_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h6d6df25_3","timestamp":1675733013249,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"575b3b10b0aa194c843f2e9fed4feb07","name":"ros-humble-parameter-traits","requires":[],"size":15295,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5f4cc82658cc9707e5ab83d39bf53a4a5de5d5bcf28e1f5c9f5c272a1e58409"},"ros-humble-rosbag2-storage-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555599979,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"11ba46e407cdeac53a6a5ec4eca1f9f1","name":"ros-humble-rosbag2-storage","requires":[],"size":163666,"version":"0.15.3","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a78d0a3d4005016553ddaa59ab5c525e81de62bb34585702e3444eca40fffe81"},"ros-humble-rosbag2-storage-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720232605,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0f4ca611609fdb9c4cde8f4bb0705520","name":"ros-humble-rosbag2-storage","requires":[],"size":164743,"version":"0.15.4","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b4ce160e106559c0fcaa262c60685c44073cf6a1d7db1ebded2684d8d521090"},"ros-humble-srdfdom-2.0.4-py310he4f6cd9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310he4f6cd9_2","timestamp":1670555849255,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86140e671da733784cd57bd0a8c0b89e","name":"ros-humble-srdfdom","requires":[],"size":78280,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b0b1fcb89cf78f44eab59e0354cf0de85fcb900d5b5089976312c65604518dd"},"ros-humble-srdfdom-2.0.4-py310h85e6e03_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h85e6e03_3","timestamp":1675719784957,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16ef08841ad8bc4a509f2effc664db79","name":"ros-humble-srdfdom","requires":[],"size":84387,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"655acc81738872eb123ade3765147b58ab01021b0d85c9ccf8cf12e1d08950e0"},"ros-humble-diagnostic-updater-3.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555719594,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa06d63919602354b8d6f99438c5cdf9","name":"ros-humble-diagnostic-updater","requires":[],"size":125465,"version":"3.0.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65f2e8cdaacac1846c74f5c94217b8b8c86552b10f3565b69ac0bce1577295cf"},"ros-humble-diagnostic-updater-3.1.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720358163,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6676da6abca620867b53adf33d225af6","name":"ros-humble-diagnostic-updater","requires":[],"size":143974,"version":"3.1.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1158c8e64f834fca0adb7e9bc7e66d5e34513adc2a08458dab463c7e92b93af"},"ros-humble-hardware-interface-2.18.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555986439,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d7febc5fabd160dd70c45226177128b4","name":"ros-humble-hardware-interface","requires":[],"size":219154,"version":"2.18.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a8be1d1c4fcafb4cdb605a2ec33ebb647cb227440c15d15526163c7c97d5cd4"},"ros-humble-hardware-interface-2.22.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770850012,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6a7ff79695869ca22fa02c9b5532827e","name":"ros-humble-hardware-interface","requires":[],"size":225190,"version":"2.22.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8a942d681ff929f87414a6ef3c6da4b0777ce5adbc62fbdf2d85b1c12124342"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670556223474,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3af4e67c769ced02d7bb49c0bce99c95","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":141450,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f60aa84eac7d41faf8579e4bc228230604bbb40a163c63a226614e38f04abdf"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675684122942,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a57719773e5f1fa63f9bc925a03bb312","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":145081,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0cfacaa319d2aa5b3f49858c99f04cd79c85c06e45790a7e90e4b98969eaf95"},"ros-humble-action-tutorials-cpp-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670556092542,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"562befaf13da14a584a58ab9659229ce","name":"ros-humble-action-tutorials-cpp","requires":[],"size":89181,"version":"0.20.2","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"deab5d926cdbb94b2c183e31adcb4da48de974052004011706b80d7655519309"},"ros-humble-action-tutorials-cpp-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683964372,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"baad9c7b1764a6d519325fdd90b2d208","name":"ros-humble-action-tutorials-cpp","requires":[],"size":92058,"version":"0.20.3","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1527f7df35d2b6bd381f81282d3c00eb70f53971d86449e35b3ea3e0c6511203"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555807498,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"29a29e6377a5b50237a1786232e03572","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":100065,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"203d098145cc538ef01d3ef72457ce2101b2a1804ad676560de3357d124194cc"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675684347125,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"27597c89c47efa0f63c454da2176baad","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":102598,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f3de9a188b0f1edd016a1ddeb2790801ef46ec5896b4e9356e72e40b2adbf75"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670556308015,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6bbf178036195980d9ac1b1d1f3e46ae","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":55074,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfa5968f70bffedaf43add7336d452c2729b5ed733f602587847cb0ef73a0acf"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675684229652,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c221e6612f1f7b0033c7f479b60ed4bc","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":57655,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67ff03996971904d32bc6d64f506afb898a9214c4ee3503c2ffd96a6b83383aa"},"ros-humble-depthimage-to-laserscan-2.5.0-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670555980466,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ffdffdf04104f63690307d228836dd2e","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":188004,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"358d328c89d9d9730f3c73788eb9d0c6fad258cd115821a45a5ec7edda400908"},"ros-humble-depthimage-to-laserscan-2.5.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675684500307,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7944430627fcfecb7d70b40eb2bec04f","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":193259,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"129850f3f5e176a802dec27847ab2b2c45126febd007ee778b75dab3b5bc4537"},"ros-humble-rosbridge-msgs-1.3.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670548028361,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3168087ab818bad9da85058b1db9208b","name":"ros-humble-rosbridge-msgs","requires":[],"size":56194,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f56e101afaee24ff1b905d134648da6bb4056cd9baaad0daad98cb686660fa23"},"ros-humble-rosbridge-msgs-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675652003456,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1c7fdb9e2fae31734e966ecf8ee341a5","name":"ros-humble-rosbridge-msgs","requires":[],"size":63182,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97a336bf62f42db5b0e843b4db236e41fb5749a2c2281b129c8a25d9675166bc"},"ros-humble-joint-limits-2.27.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1687408528934,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1f5bdc1f76a250742ecca993992181d2","name":"ros-humble-joint-limits","requires":[],"size":16943,"version":"2.27.0","binstar":{"package_id":"63928b25d9a997aae729c4ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c421b434fd5c5690d07e1c5a3cc06350fb0b570312e50848d9a369433d7de57"},"ros-humble-joy-3.1.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559169699,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"440d884e28bae25c9c930e6ac53a79da","name":"ros-humble-joy","requires":[],"size":169367,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ea0119b0c4c3b2edb2076d44fa71ec55a41ab561c7119b6d563786dff8c92b1"},"ros-humble-joy-3.1.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683102046,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2c3f1afc34bb7fcb56c7ebad71cc72fa","name":"ros-humble-joy","requires":[],"size":172671,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d814e8e1bf9b255bdff408020a4ffcea7d4d2e7e499cbd203c306f36e1c86ce3"},"ros-humble-rosapi-msgs-1.3.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670549504283,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"950916371fa0d08242cc2d0557ad4b78","name":"ros-humble-rosapi-msgs","requires":[],"size":331766,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c6948c37aaaa44eddd2067547e320d217b6580fda2a9464b91149c44629dc3f"},"ros-humble-rosapi-msgs-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675653141467,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"be7f13182b2cd3754ad62b383f2b5be2","name":"ros-humble-rosapi-msgs","requires":[],"size":354054,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5463b2645e2a955e4d14af70f032bf54b3525bb7633854e8f3714d072eb4650"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670554410622,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fa1b2cf122521b0cc077489e44478bce","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":222971,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bcc534f33b7906a0a46b688bf9e6f3959437c71485f30ed1bf2f0b2d5c94d4e"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675659467992,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b206283eb9c5b9614c0b1035654b59e6","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":257164,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a034fc2ffed787819ce4a3cdc7b8bac6608432b51e44fe85fec18aa46d27f2c"},"ros-humble-turtlesim-1.4.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670567730873,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa8cf3f5471ca0799e823127e09a15be","name":"ros-humble-turtlesim","requires":[],"size":729550,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d75754b26eb8376d4548870abf28c335ddf0a91f8512f85c1c2250655da9b35"},"ros-humble-turtlesim-1.4.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675683675707,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a15b0ada6454f8f3c28eeb17266f63f8","name":"ros-humble-turtlesim","requires":[],"size":741598,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3097b5267bd455c48ded2830d98232cbde5189caf1b2b8374b1add98cf2b7083"},"ros-humble-topic-monitor-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555695720,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e9a36f07d496302de40fccac4d224c9","name":"ros-humble-topic-monitor","requires":[],"size":21302,"version":"0.20.2","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e39938fc1c87a986e9bb00f2fa41e80c7ef3637094f994bbb43d5f662fa7049"},"ros-humble-topic-monitor-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683749528,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"439e65a66bcf680d42dcecfd2a7054ff","name":"ros-humble-topic-monitor","requires":[],"size":33326,"version":"0.20.3","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70bc8b836757b669a1d0b63f9771f4a9f8f2e386a131681e784fcb9bc7877367"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670556128800,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"452bd4a30934bf91c6031983c1b58fec","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":919656,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a84bfe681ad522bfc91b110060aee8bd6e85d269fcd30601c93253655ad9748"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683991118,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a8c6bdeb6c88b2ed2c7dd1e98726ae82","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":916485,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82fbedc86397a1dfe1f5b38d536dc51bb322d7d3b61065f6ce0b32b7191ce59f"},"ros-humble-quality-of-service-demo-cpp-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670555922681,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"88b0b63de4e7f73d014be3143776cc88","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1054244,"version":"0.20.2","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d40eaa881cf198c36e2f018420b100d3ab71e6fe849a282da04472d449501c63"},"ros-humble-quality-of-service-demo-cpp-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675684015015,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b97703e9c91333e0b61eec4debd599d0","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1050032,"version":"0.20.3","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b17c80d6c3a5d54eb47f351f63b7f9b185d690c942ff41f5aaa6014fa0d963c1"},"ros-humble-rqt-graph-1.3.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566400229,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0c666d44609a535d9644a90a40fbb185","name":"ros-humble-rqt-graph","requires":[],"size":45473,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ee71d7b2dd72f53b0b8e3e975d3c690aca073b683679aa79d3981e7b1dc3049"},"ros-humble-rqt-graph-1.3.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825205985,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d83e5d0d4e338ff3bdeb15abd812dad3","name":"ros-humble-rqt-graph","requires":[],"size":78344,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be6cfc129e198dbb8c802bc3c5c5e80988861f4d34a26d808c14e5a8e533c6e0"},"ros-humble-rqt-publisher-1.5.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566347611,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f12b558a0592258dd3befc99a6d3ebf7","name":"ros-humble-rqt-publisher","requires":[],"size":25735,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4da035596a64eb2c70c21cb6ebc6218ebca1c00712185263453df9fcb5830bd9"},"ros-humble-rqt-publisher-1.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825370354,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7f132737989dc081a40b3aa65cc83534","name":"ros-humble-rqt-publisher","requires":[],"size":41792,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"761d1196aa8cb8b525f7c35c7f1b3ae6cf0bf04110b647584c08b9a0e969b13d"},"ros-humble-rqt-py-console-1.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567727554,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"085062fc5947771e9b2e373c83f2860e","name":"ros-humble-rqt-py-console","requires":[],"size":14838,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2c768d7d92bd37fd69f48d6f7fc3dc90bc3ddaeaa7fff225c4f04d386c41280"},"ros-humble-rqt-py-console-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825326202,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d417cebb7828902499d78215cf78340b","name":"ros-humble-rqt-py-console","requires":[],"size":21024,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90014d73fa9cd1ccdf89a58058565e697235f5db36b92b80539922b6d2175149"},"ros-humble-rqt-shell-1.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566265963,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fa015c9052e609cf53a372acb427223f","name":"ros-humble-rqt-shell","requires":[],"size":17940,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c68443743a86263ac30c61f2e533f9164dbdf2d81717cf1d51e46642ea22381"},"ros-humble-rqt-shell-1.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825239912,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e98b7b200e3eb0f3284150c8b7f1929a","name":"ros-humble-rqt-shell","requires":[],"size":26440,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7fbc7cd2aea6db35b03c022939a9658e9849f1fa13be93c3024f5993f45894a"},"ros-humble-rqt-service-caller-1.0.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567643748,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f04abc856150799b831de4bb32e3ab4b","name":"ros-humble-rqt-service-caller","requires":[],"size":19269,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2d0d0c87805e8ddf56e0740fe2faf6f95d3ca9868c22cefb26b23e671eb765f"},"ros-humble-rqt-service-caller-1.0.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825282989,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"66d966c786855fe9717363d4930a36fd","name":"ros-humble-rqt-service-caller","requires":[],"size":30068,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32001da5ac197f2c7f0fa327212fe912488708170343a85e521e9505ef475f01"},"ros-humble-ros2test-0.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558684658,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"870d53618ac1e4e7b7b5dc48f1ac2e9a","name":"ros-humble-ros2test","requires":[],"size":8633,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21d7045f1fd0e8e1e735f579c66eebcfae5daabfa25be5fe0626a44bbf83e74f"},"ros-humble-ros2test-0.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770134062,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95cce114049b7111d1f6419ad9e6a052","name":"ros-humble-ros2test","requires":[],"size":11821,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee0c9f9a6b2623d8a28eaf918d219b432580155140f97cb0d594403f6d79734a"},"ros-humble-ros2node-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558628922,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aeae4801dd663f55e92d80e78f796130","name":"ros-humble-ros2node","requires":[],"size":14898,"version":"0.18.4","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43212dd96552244b6a542fd6792aa711b0be52d98c414728ffdf691790a1a6dd"},"ros-humble-ros2node-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770734206,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b092a24e185ead9457186484b3fc7c07","name":"ros-humble-ros2node","requires":[],"size":22502,"version":"0.18.5","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52f2e19d180b2d835c2fd9ca03b3f4e15c534dddde7344daa3e19039d6301282"},"ros-humble-ros2service-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558582038,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e4b3d86741a4c212aa0f600120825b0","name":"ros-humble-ros2service","requires":[],"size":16153,"version":"0.18.4","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6470e11323ff88b5ac73a23c4a25b455eeb356bd28ddfe84eea253540b602490"},"ros-humble-ros2service-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720061282,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e8eb9d0e13ca32dbb1dc1d8d990872ae","name":"ros-humble-ros2service","requires":[],"size":24353,"version":"0.18.5","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72e8af6a195669da15034f83608c7a6e4ba6856b83371da5a4f206534898add8"},"ros-humble-ros2pkg-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","empy","importlib_resources","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558533835,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fdc66e957d870a28c5dae4cf94fb50f3","name":"ros-humble-ros2pkg","requires":[],"size":27122,"version":"0.18.4","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f96aab8e4023e23c1ce482800d5d9e475ce2281a80e5e27ecf3b9b120cc009b3"},"ros-humble-ros2pkg-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","empy","importlib_resources","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719979933,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d7a9f210f506e0f79070c357af1d7d8e","name":"ros-humble-ros2pkg","requires":[],"size":39595,"version":"0.18.5","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e02897f0c642888df97f63ae39c96749755aec5b83dc58b5e84b9b19b7c5c09e"},"ros-humble-controller-interface-2.18.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558578516,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a32ffc0e88001258fc02a87fddeaf734","name":"ros-humble-controller-interface","requires":[],"size":32436,"version":"2.18.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9def5ada497ce46fe9acc50f7d61f8ff80244538fbd6f9862f1c7079d67af762"},"ros-humble-controller-interface-2.22.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675826500479,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"af557eb73fccd8cc00b9667785bcc437","name":"ros-humble-controller-interface","requires":[],"size":34905,"version":"2.22.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22bc76356e637651192af843b755004ce7410522600b2b5a2ddb75984ed08d46"},"ros-humble-pcl-conversions-2.4.0-py310hf542fbc_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hf542fbc_2","timestamp":1670559284438,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"55c91a1349fe7f54e34d4ddf92e15145","name":"ros-humble-pcl-conversions","requires":[],"size":16357,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f9d5bfccf41cf2dfc1f9640a2cc5acf7d10c5baba76896ebe6ed87855c2b982"},"ros-humble-pcl-conversions-2.4.0-py310hab2fab7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310hab2fab7_3","timestamp":1675719940969,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7559b9c9e49304b44c6c2ae3ec940532","name":"ros-humble-pcl-conversions","requires":[],"size":20144,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c291a209678875f0dcb4620396088b3e1ee3ed2cb3f390e2871ef3d127f6305e"},"ros-humble-tf2-tools-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","graphviz","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566215094,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b9c0595e2990409b994ad5d97366f9ad","name":"ros-humble-tf2-tools","requires":[],"size":11371,"version":"0.25.1","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fc4c07a74653c20859fb2ecd1f97d9b301472301be02e7b6bc734c5310bfd14"},"ros-humble-tf2-tools-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","graphviz","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720027100,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d4551ad74d4df3646b5d703f456cbadf","name":"ros-humble-tf2-tools","requires":[],"size":16581,"version":"0.25.2","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6e9b0922693f79cc64bafd7ad8d7145500b368158b0132890a6b143e3b2d985"},"ros-humble-rqt-console-2.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565931665,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"79673a57a026ca7f3506138c6ca16015","name":"ros-humble-rqt-console","requires":[],"size":55585,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43a0c9495b3cbbc50925224f52f8a9191d519dfab7e4f5f9b733a8e00f05810e"},"ros-humble-rqt-console-2.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825428456,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"294eb63841fe5a67c4e830e57a2357eb","name":"ros-humble-rqt-console","requires":[],"size":92298,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f47bc458d4db72e2d30fd377084f4c9ac3da6033e2c28893a99920ff5f62761c"},"ros-humble-ros2doctor-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","importlib-metadata","libcxx >=14.0.6","psutil","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","rosdistro"],"build":"py310h61b69e1_2","timestamp":1670558887344,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"011848ade0ec1affee66bd9dfbc1626c","name":"ros-humble-ros2doctor","requires":[],"size":32829,"version":"0.18.4","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a709bed0d5cb63602073506b96cfd9df3e6d23145540b8c5128154321458ff3"},"ros-humble-ros2doctor-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","psutil","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","rosdistro"],"build":"py310h5aa156f_3","timestamp":1675719633208,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5d81978ad324c9e51529bbeb34e3f35e","name":"ros-humble-ros2doctor","requires":[],"size":53827,"version":"0.18.5","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8ef8961934b55ac7fa5e0677ff6313eef66a1a2b602524ae39423507f12b8f6"},"ros-humble-ros2action-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558957760,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0b67ec2618e45ad3240765e1114b56e3","name":"ros-humble-ros2action","requires":[],"size":16972,"version":"0.18.4","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9f213530cc1c9891ed74d54fa318e5e7df3aa6dbbee9d440aa551bad447fc52"},"ros-humble-ros2action-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719717946,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"12c75036a13a6524a8c3ecb6e60dc782","name":"ros-humble-ros2action","requires":[],"size":26260,"version":"0.18.5","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6341b3811d4f2f5eca1766e5a8dbad959d2691169baf8d3a6ffa6b278456e5b4"},"ros-humble-kinematics-interface-kdl-0.1.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-kdl-parser","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2-eigen-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687846434870,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a09af4c3788a37686f4ac1fbd30dc134","name":"ros-humble-kinematics-interface-kdl","requires":[],"size":71380,"version":"0.1.0","binstar":{"package_id":"6392b3f0d9a997aae73f5f99","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4040633106eea8b477806e695f0ba78249b81fc0a8371899cb3230bba686ca36"},"ros-humble-rqt-plot-1.1.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","matplotlib-base","numpy","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566982943,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f9c96f808f0308cc28b6f3ed5ff252f1","name":"ros-humble-rqt-plot","requires":[],"size":44890,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"940ab63b98a7c8db62892dda717658ca8ec078d93504bb53c5cec260f3f438be"},"ros-humble-rqt-plot-1.1.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","matplotlib-base","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825478519,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e0254b23880c352a6963cbd083d96e92","name":"ros-humble-rqt-plot","requires":[],"size":75852,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0358ea6e762d33bfd53097f9533137bc1ea3bc70b9004cb9123b260fe70a5c2"},"ros-humble-rqt-topic-1.5.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567020264,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f6586f35270f94236c47cf625265fce5","name":"ros-humble-rqt-topic","requires":[],"size":22682,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6ec30057ca3f1d01c6b3048666704905e1eadf5f3a0baa60b45bee14b93d11d"},"ros-humble-rqt-topic-1.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825195429,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d409d2e6af3dab85ee3a75ae4fa2a5ad","name":"ros-humble-rqt-topic","requires":[],"size":36047,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff1e4327fa428476e253c57293bd94760e6781c0078314bf16754610d43d2e1c"},"ros-humble-camera-calibration-3.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566204863,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"580156cf60d40f6083153a7c89f152fa","name":"ros-humble-camera-calibration","requires":[],"size":54551,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9bd2bd37ec727582d6e678fed4e0bc5f401da48bb1d64ca8b984888d6be74f1"},"ros-humble-camera-calibration-3.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719666509,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"70af8ffd626899a59045d2be4ea9c274","name":"ros-humble-camera-calibration","requires":[],"size":97472,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a597f1cf172ce12d60d39c5de2c4f46512b8f9c10584380bd9c2fa912772a65"},"ros-humble-teleop-twist-joy-2.4.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565742899,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c1ea738d4f1c29e84cb84fc0c0bd41da","name":"ros-humble-teleop-twist-joy","requires":[],"size":161189,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a10f3c910ba5b37b63a6223c918f1a91abb62b0c226786781bc39bc8159e0486"},"ros-humble-teleop-twist-joy-2.4.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720173737,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6d7e53d8ff915d7ebe65754719a1ffc2","name":"ros-humble-teleop-twist-joy","requires":[],"size":163793,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b22e7b0382717880b35795f1c151482ebf3712c2e0f22918e7aed56f1c324f86"},"ros-humble-control-toolbox-2.1.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565696436,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"32fdc2f61d6168ca67452785e69644c2","name":"ros-humble-control-toolbox","requires":[],"size":84418,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5022db18eef0790678a118837136c1e76e868e4684581fecbe5b93950a091b4"},"ros-humble-control-toolbox-2.1.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825294366,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"81cabd5f171596b9cb1b71e123120d79","name":"ros-humble-control-toolbox","requires":[],"size":86746,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29a88abe00c4ce1838ef6b3164e21e350ed5035a27121ee76aad210d87ee33a9"},"ros-humble-generate-parameter-library-0.3.0-py310hc989f5b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc989f5b_2","timestamp":1670558635320,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0b6a5ea56aeb30fe203b6356854d08a4","name":"ros-humble-generate-parameter-library","requires":[],"size":11325,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd0956c46c85fd253c2daa5f0f8a573655154704028238f273c692a931f668d8"},"ros-humble-generate-parameter-library-0.3.0-py310h6d6df25_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h6d6df25_3","timestamp":1675771270121,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e20d68dccb3db3b856cf949b8f4800e0","name":"ros-humble-generate-parameter-library","requires":[],"size":13865,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c58a99bca744e4e22629663dd3cf1a5fdf340971ed491e5d427b7b07e9eeddf"},"ros-humble-moveit-configs-utils-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558855103,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b86d47adddae0e80f504f5e19b62fb23","name":"ros-humble-moveit-configs-utils","requires":[],"size":23290,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d6247fd3b2b89987eaf6fb86d5b1c24a2ac39abbc5c017e3e80ad1edd9603f7"},"ros-humble-moveit-configs-utils-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825198715,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e613e91d8a6f8b751f87f01670f066c1","name":"ros-humble-moveit-configs-utils","requires":[],"size":34456,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a661f2fbdc223ef9fd9f30d3124aa106186e3ce08276de863511ed1e6410bed"},"ros-humble-ros2interface-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558811081,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"094d1183f512102c9c0f8bcae72f9219","name":"ros-humble-ros2interface","requires":[],"size":17254,"version":"0.18.4","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a8d367cb5e016adab14ca8b7ee9ef05714fd154e0c4d094725f13d6e9d21b1d"},"ros-humble-ros2interface-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733079975,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"08539f228d24a260277b1225b201a0a2","name":"ros-humble-ros2interface","requires":[],"size":26376,"version":"0.18.5","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e56ad378166f15164027cdc4d9c495c3869c87a49dbfe51c1fe63c2be6fdee12"},"ros-humble-image-transport-3.1.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558792870,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2e30f1d986a6f07412b1acc24e6dbc68","name":"ros-humble-image-transport","requires":[],"size":541904,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c7ee22258eeb2924eff3554b398d24ef2ccda2dd347ba6e2a215037c88774da"},"ros-humble-image-transport-3.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733386421,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e90cb197c9642a0a4bb40690946ebd64","name":"ros-humble-image-transport","requires":[],"size":554505,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a0676b2727921fb403f25dd08bf9eb98b2eec673ffb65034f29b82a11f9ece3"},"ros-humble-tf2-ros-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558737234,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2323e014e5ae2aa28591405d5fe5cea1","name":"ros-humble-tf2-ros","requires":[],"size":422906,"version":"0.25.1","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2de966caef65c5fc8872ab7765414bd48a0f62e0a0f6664fca2131b2e83cb08"},"ros-humble-tf2-ros-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719710834,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"91a7e6b2eee4cc4971289da38f95b862","name":"ros-humble-tf2-ros","requires":[],"size":423117,"version":"0.25.2","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"971c6ec4434b7daaae765c76b7ad4e71c69368f01fdb8ae9b0384a26c3e6168f"},"ros-humble-nav2-msgs-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670559166869,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e86a6ed28a10f6d8a24c35399ac56cd2","name":"ros-humble-nav2-msgs","requires":[],"size":728131,"version":"1.1.3","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13555422784268e5c51521898f358ef70da111796efb80360cc3511661dc2b99"},"ros-humble-nav2-msgs-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720101556,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2277ff6718084df02605fbff0ecc39a9","name":"ros-humble-nav2-msgs","requires":[],"size":786994,"version":"1.1.5","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2cb186a6e4ef4ce664e8b4166c67c52fff69ba9e74396a4cabb1e43bc7f7fcc"},"ros-humble-ros2topic-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670558814382,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"127e1c5fb7f3f818ecdcd9226d6a19c4","name":"ros-humble-ros2topic","requires":[],"size":38117,"version":"0.18.4","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9f3d95b9729d6fbbca9ecf8e9302b1afc537b8bcdffe346908819a25defb8a8"},"ros-humble-ros2topic-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719792729,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"21f132eb5074c57039740aead6cd76e6","name":"ros-humble-ros2topic","requires":[],"size":63275,"version":"0.18.5","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3490280a99be2943fae390b24fef1224b5f420a79fe2a9565e0d03cd16975a85"},"ros-humble-rosbag2-storage-default-plugins-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559273709,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"01799e825e02a84c53a240416757def2","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":81571,"version":"0.15.3","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8933d6d57acd9d7915e5e7b4777a44838f3bebe851e984a5faa4ebac9a9eb823"},"ros-humble-rosbag2-storage-default-plugins-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733049746,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"509510477b539c713992bdc0d42c4704","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":86134,"version":"0.15.4","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e49c99a493c7e1d492a6a0260f3733708614175003b8d7afad9d2b84ac8965f2"},"ros-humble-nav2-voxel-grid-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559380783,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a65c7aefff4894b49c113ce4b3c3c2d2","name":"ros-humble-nav2-voxel-grid","requires":[],"size":23110,"version":"1.1.3","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f17af154799223f1e0f24bdfaf187e178ca551af3dbab7de620121734d4fbd1c"},"ros-humble-nav2-voxel-grid-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719639224,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3704e65c0c22ec838ad24f779171a2f0","name":"ros-humble-nav2-voxel-grid","requires":[],"size":25762,"version":"1.1.5","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e66858d6e811993b306ffdd9b88f1f9b21432aa90a9490846ac94ebaeb92566d"},"ros-humble-composition-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559731682,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4200d907ebb2f3cc8c81a58cf42c9eae","name":"ros-humble-composition","requires":[],"size":325861,"version":"0.20.2","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8adf2082c880ea53a555d6aa949d37f7d654d39e43deab59fce9f79c2dfd6eb8"},"ros-humble-composition-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675721039878,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d64f2d37b6572c0767c0303daf792e3a","name":"ros-humble-composition","requires":[],"size":324317,"version":"0.20.3","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"116eea6b72635f4303a06fe52c130cae654053c4dd7735fa8c0326b2776932cf"},"ros-humble-logging-demo-0.20.2-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5aa156f_2","timestamp":1670567855067,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2900f4c2527bfe4c7e4a402baffe21c8","name":"ros-humble-logging-demo","requires":[],"size":135878,"version":"0.20.2","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e926a9ade42c0021fc40b429728e8f91fc793f551aea4b9ab722e7254d1af248"},"ros-humble-logging-demo-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719940170,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e432f4dd892144c851ea57436628c367","name":"ros-humble-logging-demo","requires":[],"size":143577,"version":"0.20.3","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73d6558b2c17cc08f3d5fd4a361933a339ce0a8d46ac398a2cbfe9ba5bf35434"},"ros-humble-image-tools-0.20.2-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670559222576,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6eb5ca7f43c7702b6e697244bf3dea10","name":"ros-humble-image-tools","requires":[],"size":240134,"version":"0.20.2","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22d4c3afd48447bfd040bd6928db8d854d4b7d47e173347eaf9b8397403d0220"},"ros-humble-image-tools-0.20.3-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675720116432,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cce6fd89dd32bc27e8e2a861d82e2d79","name":"ros-humble-image-tools","requires":[],"size":237623,"version":"0.20.3","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c8742e26581366f2b5ebf6e7041d048f8e32b7adaaf820b975b996779dd46ad"},"ros-humble-demo-nodes-cpp-native-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559296919,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dced0dc232062a23ec60db1f045cc554","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":84674,"version":"0.20.2","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a248b04f96df061b1f92bf9681b578f9e2c0294e6a1a5698097051191102659"},"ros-humble-demo-nodes-cpp-native-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720245448,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bb23426a2472dd086e0849f21ccf93dc","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":87461,"version":"0.20.3","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5593a1eb990d378eb8a683a4d764e95ed30a74c13d173f046e33fc38ce839513"},"ros-humble-demo-nodes-cpp-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559606867,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ff4c70baf3fc341cf0e36785c3d353e1","name":"ros-humble-demo-nodes-cpp","requires":[],"size":875556,"version":"0.20.2","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ad51a4d300861561b9d161ac4bd8d5912a7bb924a04007f508260a0a557cd77"},"ros-humble-demo-nodes-cpp-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675720890579,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ba38391cae223a5316b36d7ee72b6259","name":"ros-humble-demo-nodes-cpp","requires":[],"size":876458,"version":"0.20.3","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6dcc8d392158e3e90d3ee4977d2b4fc5e9db2533f3129edfcaf158291fbcf2d"},"ros-humble-rosbridge-library-1.3.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","pillow","pymongo","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670559086352,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a12eb6af7b9dc0d3397bdbe2fc2f8772","name":"ros-humble-rosbridge-library","requires":[],"size":70802,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf5e147a9acaf9ecc83cb23612d10800566074e8804ed3f23982e31f3e497eb5"},"ros-humble-rosbridge-library-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pymongo","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675683882169,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e942f1806647923649c712389a9bcf53","name":"ros-humble-rosbridge-library","requires":[],"size":117790,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e717e36b9f45b75c1aefcc1cfcd61c518ab75706dc38b8c9360bcb9f0ebdfd11"},"ros-humble-ros2run-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565941572,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"40dc16a627c1d93f854cb25b8de71d95","name":"ros-humble-ros2run","requires":[],"size":11395,"version":"0.18.4","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c69edd3d26277e0f0358dac27eb1cf1f324c3ff7b4465348c2dc7872924f502"},"ros-humble-ros2run-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733074766,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f398652f7921cf7abbfe32b485bcb830","name":"ros-humble-ros2run","requires":[],"size":16623,"version":"0.18.5","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46129835f36fd7b3c81f336638fd995e49abc14354cf54e066a64dc2ec7bfbef"},"ros-humble-tf2-eigen-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565721979,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5ab9576be75cfe2f834c8463d417b221","name":"ros-humble-tf2-eigen","requires":[],"size":15996,"version":"0.25.1","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29a0a2022df0ec077aadf77c615e93a5f5a9a7eb6a49d1fb23dcd5b1ec80718c"},"ros-humble-tf2-eigen-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754405885,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"29aa6597cab8a996e4b4078260c7640f","name":"ros-humble-tf2-eigen","requires":[],"size":18723,"version":"0.25.2","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6f177a2c3a9a2537406d8e7eaefce26c007f75662acb00aadbe6230f0c7674b"},"ros-humble-robot-state-publisher-3.0.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565864259,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"83ec32cf6e96091c0af9c74bbbc54f46","name":"ros-humble-robot-state-publisher","requires":[],"size":222530,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40e8d136c3f0128f5801866d2c706b18a67c9cbbcea97d4a9bc6d676be44a1fe"},"ros-humble-robot-state-publisher-3.0.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675732958379,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"875f908911425f4fef83aa7c48c5952b","name":"ros-humble-robot-state-publisher","requires":[],"size":221020,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"229e61f5c99b04e75375a06539c628a2bc56e5e0975dc174750b20a2fcb020b1"},"ros-humble-rosbag2-cpp-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565866763,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3015e6e41b5057ecfb6930e4fd750dc9","name":"ros-humble-rosbag2-cpp","requires":[],"size":210061,"version":"0.15.3","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cb7b24b3074011cdc5e89d84906dbffc50e91ede455dc44c0e0bca88bcbd361"},"ros-humble-rosbag2-cpp-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754532542,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5c992bc4c53423ee4befb1c6ae3ce8a1","name":"ros-humble-rosbag2-cpp","requires":[],"size":212974,"version":"0.15.4","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0dede869202ef1af43230444f49b0cfcb499d9da89d7373393175023be34fa0a"},"ros-humble-tf2-kdl-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565998181,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2c4decd9a3952ea2ebbd0bc395189e42","name":"ros-humble-tf2-kdl","requires":[],"size":17700,"version":"0.25.1","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e94baf5025008b06a7cd76c02a6ecd7e0095f9312c4a0b08b52566b010a79057"},"ros-humble-tf2-kdl-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754330402,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a92503fd9d32c7f690c4538fe9d6af37","name":"ros-humble-tf2-kdl","requires":[],"size":21836,"version":"0.25.2","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8007958ca34c88be8b4f7e02a5ae0908e4da82a501271732528174345e95b97"},"ros-humble-tf2-geometry-msgs-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565687039,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"68d97269e990f488e5a7bef2943d1674","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":24039,"version":"0.25.1","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0283024b37071447583b8d3f0c5ab254cb276609d5cbe94f8cccfc75e27d6b2d"},"ros-humble-tf2-geometry-msgs-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675732770739,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6982e0257671075c785731d218878a3d","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":31499,"version":"0.25.2","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b74d33d2afe008dbe7feaf5056cb428c1967859272150fb13f06e11c486e248c"},"ros-humble-ros-testing-0.4.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566078866,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"41581b7b66b4d0f615dc078a55286174","name":"ros-humble-ros-testing","requires":[],"size":10740,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aca1a8d538c1e8d6d25c5633c1c7d67fc972134812017c2d836476c22a5be87"},"ros-humble-ros-testing-0.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675826568473,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8ab398257e9f3f5e824f9071d0c765dc","name":"ros-humble-ros-testing","requires":[],"size":13121,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c2201275ca1e008ff982def780647e958e4e85e5eda47ee32cb70d94d731693"},"ros-humble-tf2-sensor-msgs-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565929779,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"38afc17a272aa67d1762182ac9b95785","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":12781,"version":"0.25.1","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"900fdba3b2c76ddbbed4f1763ec8f72ed845975d1463fa43e165674225dd1bd9"},"ros-humble-tf2-sensor-msgs-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733128550,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4ea91bc6c4a6ce11f6cedf2031ffa770","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":15485,"version":"0.25.2","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99e8a048f569b2231159e36eed699cc104aa55fb9fcecadc70cbb23eed03d345"},"ros-humble-joint-state-publisher-2.3.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565747082,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"62fae3b8e431dd4e93f11764a2b41db7","name":"ros-humble-joint-state-publisher","requires":[],"size":17225,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"007346a86b58f4e0a36faf8b8883b3afd45be89422bfe4f1ee3063019efd23f1"},"ros-humble-joint-state-publisher-2.3.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675732833699,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2e3d92d06b44a15728310a9c98d3d83e","name":"ros-humble-joint-state-publisher","requires":[],"size":26833,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48ba25fc8d6afa335bb1e897a35ec670f27bb0a1cc6e2c91d59e92c3aeec70f8"},"ros-humble-ros2param-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566015339,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"153cd7d1c751c2a3093096aa7245c0ac","name":"ros-humble-ros2param","requires":[],"size":23882,"version":"0.18.4","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8847fd1657cd4e09cf10fa9668ff87282c9b733f46b61c36020a339c7cea07b5"},"ros-humble-ros2param-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675826390407,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"90d3184800a76a283425bfd5a107c7b6","name":"ros-humble-ros2param","requires":[],"size":38690,"version":"0.18.5","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46f30b6aea914539663fb73edbd3a1f5a400d9e8b4ec9d51ad1a40804c391e4f"},"ros-humble-nav2-simple-commander-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565756569,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5c1f91f2b04e8896817d3cec56893f2c","name":"ros-humble-nav2-simple-commander","requires":[],"size":41554,"version":"1.1.3","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"910527293fe3c134c3bb2b2a873b626f1d196a8e433126347ad9bab953f9f753"},"ros-humble-nav2-simple-commander-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754388049,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f1607daa58391d23cde9add1c06e64d2","name":"ros-humble-nav2-simple-commander","requires":[],"size":61067,"version":"1.1.5","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a006d9bace7a0de51579051bc829315c428d8877a4c79fce125e0a4436f330f9"},"ros-humble-theora-image-transport-2.5.0-py310h15bb56e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_2","timestamp":1670565839037,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d663320591a771f8bc52d1506082c146","name":"ros-humble-theora-image-transport","requires":[],"size":311312,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"992dabb7d3cee4cccf05ad442da4d9b3cffdb5e764f10faa7da47c49079f3231"},"ros-humble-theora-image-transport-2.5.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675754295021,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5264896563f5f8b17bdceeeac5729956","name":"ros-humble-theora-image-transport","requires":[],"size":320846,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a232f169d7bc3cec5954703f0b80a30e391d7f58bdb9f9e2c87c36793d132070"},"ros-humble-ros2launch-0.19.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565874073,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5cf7715f6d8e73dc4354e8baf493ea5f","name":"ros-humble-ros2launch","requires":[],"size":17795,"version":"0.19.3","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42ddea590fd2f1dc5744302cbf702c1ca024b542cab6eb31ddba1b6de7d0a33b"},"ros-humble-ros2launch-0.19.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754572206,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"89cb04533f5a0dd14fb3627b319f4c60","name":"ros-humble-ros2launch","requires":[],"size":27006,"version":"0.19.4","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"966c90196d4bd31c2c928d65869e34cda87e114f9ace667eaefc7d2e462272f7"},"ros-humble-ros2lifecycle-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670565817372,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cb97717d066adf418d349384500c7e4a","name":"ros-humble-ros2lifecycle","requires":[],"size":16642,"version":"0.18.4","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f7594de82912459e336b701767202ce05983464f75f2df246c2afc57f3b5c16"},"ros-humble-ros2lifecycle-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825363588,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3612435d3368d5470ed5fcccda7d5638","name":"ros-humble-ros2lifecycle","requires":[],"size":25744,"version":"0.18.5","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"678c3bc08f55f9e18ea9f9e7733b48d5a7808d42cf8df519abb0d6bc2f13ef58"},"ros-humble-compressed-image-transport-2.5.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566001241,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5a4f0d4c1312d2be5ec423bce7661bd3","name":"ros-humble-compressed-image-transport","requires":[],"size":166650,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c2622a9d8d6dd61e3468af8a0e353e051bf39956516e25c38669719cc83c90f"},"ros-humble-compressed-image-transport-2.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754462294,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4ce94c2783d3b91a655faa3bb7820a11","name":"ros-humble-compressed-image-transport","requires":[],"size":169058,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe78dae4336053753c8827fa0d3276204a6e5e9aff0fbc68f8e4dd7e3f48aa71"},"ros-humble-rqt-reconfigure-1.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567685154,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"517ab17aa6beab5a190d3c69f8bbd495","name":"ros-humble-rqt-reconfigure","requires":[],"size":50440,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed2e5bcb415c5f384e9ce07399783d60cc878295bc1a62bd6edc34fc17b1f549"},"ros-humble-rqt-reconfigure-1.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830936368,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f565d8255afa0cccf50623be52c29d9f","name":"ros-humble-rqt-reconfigure","requires":[],"size":79270,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7f3ba0543ff72b50ba028cd2830b0fd8cccea1cc260f5a837492c05dc0dc768"},"ros-humble-image-publisher-3.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566117723,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"66979c0d5bc8216ad8f7b09894a80236","name":"ros-humble-image-publisher","requires":[],"size":104670,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f0c6006bc45ef10aeb9fadb6fffea8a06464ef4196c5cd643e05e2b79c7bf88"},"ros-humble-image-publisher-3.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675755445884,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c8c7c9c0be11dd0d4f075202f529eb47","name":"ros-humble-image-publisher","requires":[],"size":109091,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3014119afec719ea87b468de65c83066a4eee6ab21b1fb19f11d3a8282a48a0c"},"ros-humble-turtlebot3-node-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-dynamixel-sdk","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332167187,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"46d281103409aeeebb51b1666bc5730a","name":"ros-humble-turtlebot3-node","requires":[],"size":18307,"version":"2.1.5","binstar":{"package_id":"6392d03166b3e4e3def05409","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70f46b02d835ed2c21983cbe3d782af9b835325a3c5131b14040742789806fa5"},"ros-humble-ros-gz-image-0.244.9-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","python","python_abi 3.10.*","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567531927,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b01b650c8ff283b204037b7b9a65f7c","name":"ros-humble-ros-gz-image","requires":[],"size":49062,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2c150a6cd571328be8b0348ead87aeb97bee3544890412fe794e0aee3d6c935"},"ros-humble-ros-gz-image-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754993071,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"127fc19d55fecfea5207acdb0db55c7e","name":"ros-humble-ros-gz-image","requires":[],"size":52137,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e385b6da2926492bef42f4383f594fe6e6716525e230f504b4d49650f60a2981"},"ros-humble-image-view-3.0.0-py310h849549e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h849549e_2","timestamp":1670565989058,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e09789c25875391e4a60ddd66c315c36","name":"ros-humble-image-view","requires":[],"size":307323,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e01d166f1beda96afc6d151f96e97789a9722e252b98be1ff262cbbc26dd7461"},"ros-humble-image-view-3.0.0-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310hc887327_3","timestamp":1675755134957,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"771c1b36ade4be925b17be969f5f86ce","name":"ros-humble-image-view","requires":[],"size":310742,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51163bdc4b37b3f918c85abd8e692b1d847ac52dfb771b111dd3b28883997099"},"ros-humble-rqt-image-view-1.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670567205698,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f7c4596fdd1abebf39cdaad2c745c15","name":"ros-humble-rqt-image-view","requires":[],"size":207075,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0592b086de2c7f3de8013a76fd736c4574d634a1f5f1b73f50d48544afb4279f"},"ros-humble-rqt-image-view-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675770919059,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8a9bda7e12c90a338dbbfb6825497983","name":"ros-humble-rqt-image-view","requires":[],"size":211347,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9c7c1fdd0bec8e25fc1e9d95f4c5b58348b2970a673500bfddac3fd83cfcc42"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566156937,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f2ebc7f6b01b02e8820a586956caa994","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":151539,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1be88e81622c14b5a6181ec6e761845c2bd9907bd05e1d7b7aa2fad31e4f5cc"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754632415,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7b93202800b958f451f3ddec664ca633","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":155603,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e833765d5e48bb718112c87d9a44f056362060f76d4a3a89e8adaba9ac7e9b8"},"ros-humble-image-proc-3.0.0-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670566873445,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"138d6eaabecd93702a7d7557a565861e","name":"ros-humble-image-proc","requires":[],"size":88758,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09e05bc0817da881132553a56fe3e5bb94c8c6adc9adba02dc41d585c31ab70a"},"ros-humble-image-proc-3.0.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675754845129,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ac988cd747638b2f524e2c30fcc61a97","name":"ros-humble-image-proc","requires":[],"size":92884,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"110e9df855247e354f64fdb94af93237c41e69dbbfcb5b9bae50a6c0ae30c08c"},"ros-humble-tf2-bullet-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","bullet","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566303968,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"11f0edde4382f95f52366b2cf2741650","name":"ros-humble-tf2-bullet","requires":[],"size":13262,"version":"0.25.1","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4bcb0338832615ec31d2c8924b05f1925da39ad208f27a1acad4018e5542ab46"},"ros-humble-tf2-bullet-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","bullet","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733270315,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9f81c8a78e1f2fda3f9cf223c6ada511","name":"ros-humble-tf2-bullet","requires":[],"size":16135,"version":"0.25.2","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e48b508860aabce6f921fc0208cbd4b975aee8b740e924e2053c3f42247260c"},"ros-humble-rqt-msg-1.2.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566932449,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ae199645069ea9f1f7ed6b73aa5d6342","name":"ros-humble-rqt-msg","requires":[],"size":17850,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a27ba6f6849fa36a172bf3f026a2dda19fc79d5e4454d8cbd50ed196be9b190"},"ros-humble-rqt-msg-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830889143,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"481b88af9c49d56225aecc3281566f65","name":"ros-humble-rqt-msg","requires":[],"size":26073,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91de3aacad1bc223ba9821a9e0f4a24a92f253ad9f344effef081fbd08a2af80"},"ros-humble-ros-ign-bridge-0.244.9-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566492975,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b4ec0e9c42aa0b77aa72529acfe3edd3","name":"ros-humble-ros-ign-bridge","requires":[],"size":18812,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3622c467a4cd8753dd080bae82897fffdb73d554d421f102589927784c73154"},"ros-humble-ros-ign-bridge-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675719801812,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"48dfe2ab402006be3211b9a8a3ba8c16","name":"ros-humble-ros-ign-bridge","requires":[],"size":21528,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c660a976d148bc814dea2f1bf17790f8bd2c2da58b264f671b8239d412f5cada"},"ros-humble-warehouse-ros-2.0.4-py310h7ba4ee1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7ba4ee1_2","timestamp":1670567036682,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b79d902cdf54372d33b1ba7825d9fd5a","name":"ros-humble-warehouse-ros","requires":[],"size":130823,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82a5c43ed817741b1940f3b127abd69e0c502bd319678f804361fa3e5e8961ab"},"ros-humble-warehouse-ros-2.0.4-py310h16cb95e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h16cb95e_3","timestamp":1675859516268,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"498fa93ec3a7c3af642b781b13914a75","name":"ros-humble-warehouse-ros","requires":[],"size":133654,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c81a170b963234dec4ed527b1aee7583997efe720005cb8f010991b485f9f3e"},"ros-humble-ros2component-0.18.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567155712,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"40b5d40bf20f084e3da0cebb4395224d","name":"ros-humble-ros2component","requires":[],"size":21711,"version":"0.18.4","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e9ad5265b14aba164812e1ec53a2322fead2ca314a3bb77c0c103dcd5aba572"},"ros-humble-ros2component-0.18.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830833298,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ab7b60451b8ef581fe8e5c21d66a95ed","name":"ros-humble-ros2component","requires":[],"size":34716,"version":"0.18.5","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbd1a2001da01e68ea6387ce299c200955fb37c411284940281fafd8b1e8bcf7"},"ros-humble-interactive-markers-2.3.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566836480,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fe6e4ab014c98673f58800c3c507c7eb","name":"ros-humble-interactive-markers","requires":[],"size":254192,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c47b23a3a2b72cb082f158d635e7f9b98eef790facc973063db2d91b27ea2af5"},"ros-humble-interactive-markers-2.3.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840155519,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5b1913741dcab0c244191459b5e34d6e","name":"ros-humble-interactive-markers","requires":[],"size":269769,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"795af9416a645a69c89607ff1b54ffe0c36674399b35e31f4f503b314945766d"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670566893749,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a00f905ba57db92c2eaf6bf5a04a1eda","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":20208,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afc9d5c9d1fe480ebfe6815c67580ea6587e3372fc5e8a0d79a9176fb9543202"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840089411,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b2f17f1d0d887cb62460a8738e2cd7ca","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":23282,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9aa8cda849da3aca417c05d8034a434d253c1bb13e71098e6946b3564b6b3074"},"ros-humble-sros2-0.10.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cryptography","importlib_resources","libcxx >=14.0.6","lxml","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567106375,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5ad484dd8e27c0d27e341c5756e9a500","name":"ros-humble-sros2","requires":[],"size":39294,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55d6942a927ca926269cc5629d2e89e3142dec920357952d5c12f4d4bc6be6a6"},"ros-humble-sros2-0.10.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","cryptography","importlib_resources","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830780983,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"508b6b600ca3822cad65d9194835d1f2","name":"ros-humble-sros2","requires":[],"size":60342,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f96829012fd0694aacc016864b4f9df0521feb3cb38d1f0525b75bff7613a5a1"},"ros-humble-rqt-srv-1.0.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670569913624,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1bdd2697419eccc253fad77745efe685","name":"ros-humble-rqt-srv","requires":[],"size":9991,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"beddfa2864a4cbb998e42658926744c89378db799dd76930f0c828099e16e1c8"},"ros-humble-rqt-srv-1.0.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840398952,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"adea9f8037eef67af105d52eb923f766","name":"ros-humble-rqt-srv","requires":[],"size":13225,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8c9f316f6b6ff3f0fd41d658e0a19909d8994efaec6124b01d2f410386f2f31"},"ros-humble-rqt-action-2.0.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793958003,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"44c5c582c285807cd1cd04bb942eb430","name":"ros-humble-rqt-action","requires":[],"size":13462,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64fb497e6deb9fec42b7e262d14320570eee90f9ad0fe36fdc081846fa903689"},"ros-humble-rqt-action-2.0.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840441326,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f6d748a0af8688992be7c72e6d73b35d","name":"ros-humble-rqt-action","requires":[],"size":13230,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31a6b967d9ad422c0f7bd2c84f00a1dff9bb1d7b76280db1dbc83b6dca2e985b"},"ros-humble-rosbag2-storage-mcap-0.6.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-mcap-vendor","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567792574,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d05e18a5c8ef6b7ce90956a752c7232c","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":105857,"version":"0.6.0","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b4a52b9928a841585b71896284c31c181d9870c67356763bff1049f15f80e36"},"ros-humble-rosbag2-storage-mcap-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-mcap-vendor","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675733391371,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6c1bfecd8becde5ed8c2358157ff72d5","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":108869,"version":"0.15.4","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"beb641e72dd3dc63fdc87e23952f621116a22aeb356eadd885479202d5dccc15"},"ros-humble-depth-image-proc-3.0.0-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670567567577,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3dc81c419bdcc40c97db19c9244ddbb6","name":"ros-humble-depth-image-proc","requires":[],"size":322732,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a700e5eade27176e47e7d623e0276f110899bd629bbd027946a165f5bc8124fb"},"ros-humble-depth-image-proc-3.0.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675770710176,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"08d737cbb418f9c705476b6af48fcb71","name":"ros-humble-depth-image-proc","requires":[],"size":325928,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e389f9a90f8e171401d90c5e277ea8cde06fd6b3769d52c6c90b1cf7e0e48f2e"},"ros-humble-image-rotate-3.0.0-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h49b86b4_2","timestamp":1670567270672,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"944476026ef941f4703866577ebf5173","name":"ros-humble-image-rotate","requires":[],"size":80486,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd32d2b8d8592c40aec786bd2b6fde1b0fc0d9133525a4ff0fe0211c19ebccec"},"ros-humble-image-rotate-3.0.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h15bb56e_3","timestamp":1675755295458,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"58e6636e6adda8152a84edbfb9769142","name":"ros-humble-image-rotate","requires":[],"size":84406,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93735f51d37d9b08ad520730f0bad9e096124b95166b87d7c7983debe2c671fc"},"ros-humble-stereo-image-proc-3.0.0-py310h49b86b4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h49b86b4_2","timestamp":1670569831933,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7fdec06c0d747a76975c5750a536407d","name":"ros-humble-stereo-image-proc","requires":[],"size":327728,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0eeb16148963a8cf114f297df32f1808af58c60ba08f96cf9348e5c22057320"},"ros-humble-stereo-image-proc-3.0.0-py310h15bb56e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h15bb56e_3","timestamp":1675830875832,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e661e6654a50c5f6617a8de088b88d2c","name":"ros-humble-stereo-image-proc","requires":[],"size":332194,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74108933e66e84751d2536ec11546744ee749d57ba9fba57fab32abf07d348e2"},"ros-humble-dummy-robot-bringup-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670568023750,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0271e1aab3e07022221baab50e76f4ca","name":"ros-humble-dummy-robot-bringup","requires":[],"size":13067,"version":"0.20.2","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f028a0d26e28c7ea84fca6de5d4f1dd8001dc2ffaca7546f1a7bd71339dd56bc"},"ros-humble-dummy-robot-bringup-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754631063,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eeb9cb62b8c9658730908b91f58fbba9","name":"ros-humble-dummy-robot-bringup","requires":[],"size":16076,"version":"0.20.3","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56c80b020415873aa741b6ea296de887be090247a87cfd34f8581c638d546f40"},"ros-humble-image-common-3.1.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567481644,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bad92cae8346c5722828d125e195b8b3","name":"ros-humble-image-common","requires":[],"size":9300,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8d659c7ce4fc3df36de4dff81741e6aa7c3d837f55000bd2123db91da3491d0"},"ros-humble-image-common-3.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675755511217,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0682ce1a481c8b0faca01db855add70a","name":"ros-humble-image-common","requires":[],"size":11660,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e87fe622cbb43ca733fa4c50a3b513f9cdf53edbcc16e8deeb9258c3912fd1e"},"ros-humble-lifecycle-0.20.2-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567972810,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3ab95c566c22eb8d6b4ae798660c6b3f","name":"ros-humble-lifecycle","requires":[],"size":214485,"version":"0.20.2","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1822de3e37b536dc1d501ec6a8bd0f8d5406789df062ea79f291b476d6eaf92d"},"ros-humble-lifecycle-0.20.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675831041800,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d7b32a34d45c2773ce76b0a95c86320c","name":"ros-humble-lifecycle","requires":[],"size":216194,"version":"0.20.3","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40eac57333049f2d4554f03bcbe5f6f7ba4c101a4f1084c7453e722e667f7a47"},"ros-humble-laser-filters-2.0.5-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571263742,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3e331c93311e55291d70cdc04ea8f6b","name":"ros-humble-laser-filters","requires":[],"size":856845,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b94b71f90600e70a9149ea9d491b65edb57059f049c19d64687d30a93eb1d78f"},"ros-humble-laser-filters-2.0.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675771081110,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"776578b73b2a95588556c50a4762f7dc","name":"ros-humble-laser-filters","requires":[],"size":812878,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"784a1a6b26e8877aa6501230dd44858bf7e9d9f65a59bc412705366c259e3823"},"ros-humble-robot-localization-3.3.1-py310hc887327_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","eigen","geographiclib-cpp >=2.1.1,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hc887327_2","timestamp":1670805639467,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"33e42c68afcfc4c5a0beae93d4bf8e14","name":"ros-humble-robot-localization","requires":[],"size":899452,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b15652fb25d062a6c22a442a6fbfd86607ca434911d27f821a254ba4e447380"},"ros-humble-robot-localization-3.3.1-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1675771226146,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7c77acaac68ea001a8a424012c711476","name":"ros-humble-robot-localization","requires":[],"size":896014,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32966a4d8077e1462a396ebb832ad79908f7334366514d3e0ea4d74077daa1e6"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567080823,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5e6a57767eaa46ea6424c894a9e03f63","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":17572,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10daa0db7cf7763c1420c37fa8dc96e3e7055c31cf8fd2f75b395fdf119ba8e7"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675754260028,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"24e345ca3f13d2b6031a328fe7866459","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":26657,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea2c79a9864648659ff6b543320bc08daa4d7be8a65bf22d5a00a6e47f73e1f2"},"ros-humble-nav2-util-1.1.3-py310h849549e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h849549e_2","timestamp":1670567018024,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6475d599843b268ba60555a3f7887543","name":"ros-humble-nav2-util","requires":[],"size":191989,"version":"1.1.3","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e69830339c603f281cf619e486de61ea975eb0db436ffa1f57782a40f21430f9"},"ros-humble-nav2-util-1.1.5-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1675754160817,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a5dea6c2e208adf502011e89d06b96e7","name":"ros-humble-nav2-util","requires":[],"size":193833,"version":"1.1.5","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef225053e5ee809b781a658a5230950c0936207eedbad32d8bbd5c33e926841d"},"ros-humble-image-transport-plugins-2.5.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-compressed-depth-image-transport","ros-humble-compressed-image-transport","ros-humble-ros-workspace","ros-humble-theora-image-transport","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567622000,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"935bf0104b09e88cb7a28bab40340dcd","name":"ros-humble-image-transport-plugins","requires":[],"size":9344,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92fc77dd6d88d116ade001262915302effcebc2dd045e6c62a463d8fbe053a93"},"ros-humble-image-transport-plugins-2.5.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-compressed-depth-image-transport","ros-humble-compressed-image-transport","ros-humble-ros-workspace","ros-humble-theora-image-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770993801,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a7db8b43fd43779bb69afd84aaf1de60","name":"ros-humble-image-transport-plugins","requires":[],"size":12281,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae261d125474f48e0cdd5a49b83e895d883f75ce1f45f7dd1bf9b1749ec2920e"},"ros-humble-pcl-ros-2.4.0-py310hf542fbc_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hf542fbc_2","timestamp":1670567960323,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1ee1592be9bc38169af22263668a2a62","name":"ros-humble-pcl-ros","requires":[],"size":77699,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b0d7524ac5e506d72edcaac39af71171031005516beb74fc7bb1fe4246c2a95"},"ros-humble-pcl-ros-2.4.0-py310hab2fab7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310hab2fab7_3","timestamp":1675754888195,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5ecf61251e4f1aeba307342ce31c9994","name":"ros-humble-pcl-ros","requires":[],"size":81912,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e475fc2e46bba650422f6398e99aef82fe727d30002fde073ac25379cd0c789"},"ros-humble-geometry2-0.25.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670568049911,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16d828df732ff2ff546ed5a3e29ffb04","name":"ros-humble-geometry2","requires":[],"size":9237,"version":"0.25.1","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4acf99ab2cfdc816348163ff661b7eadee35328ef7b88894dbc4156f27d0459d"},"ros-humble-geometry2-0.25.2-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770182106,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a2c0c08e4a14847ba1d591879316ef31","name":"ros-humble-geometry2","requires":[],"size":12059,"version":"0.25.2","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b366f761a6cd11f4715250186af3b74367b57b2d35c672fb1072d5ef97d743c"},"ros-humble-gazebo-ros-3.7.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-rcl","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tinyxml-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1677542142427,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7c58953b2bda2c4a0b0d5a56e46cb5ec","name":"ros-humble-gazebo-ros","requires":[],"size":625993,"version":"3.7.0","binstar":{"package_id":"6392d513a2b71210084391a0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efe46c7f63cba706742a2128959a88d74b15b2637a603a636a1d964cf6d91990"},"ros-humble-rviz-common-11.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670567678834,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"feca5cb1f9b05cf41bc7004fcc18a6c4","name":"ros-humble-rviz-common","requires":[],"size":635612,"version":"11.2.4","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cfdd1553b8348730bf055885a028319f566a09b96c845aaa363ebbf7c4ac50f"},"ros-humble-rviz-common-11.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675771053686,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e6965ef93a6d83bee2e925217fd8125","name":"ros-humble-rviz-common","requires":[],"size":626589,"version":"11.2.5","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e11086ff4d678615dcd2dc0eeada0eed56dda94495dcb8599eeb922b4e8a89ca"},"ros-humble-rosbag2-compression-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567163693,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ebb11606f35f023fbff596dda100b275","name":"ros-humble-rosbag2-compression","requires":[],"size":133135,"version":"0.15.3","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51290de07aadf1baa5919cf3d7af2445afc7b3b9099f6fca23bd69aad75c1aed"},"ros-humble-rosbag2-compression-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770433904,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e402072c39864b7fb7c2bf1708267c3c","name":"ros-humble-rosbag2-compression","requires":[],"size":135961,"version":"0.15.4","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b9520e17fca987a31ca200d931fc87de76b84d890a177ce6c6a1d89c591efab"},"ros-humble-controller-manager-2.18.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567805030,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f9e3992fc9c9e52721cd18e3f47f879","name":"ros-humble-controller-manager","requires":[],"size":260138,"version":"2.18.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55125556ec2cddc86f6a8a1d7a580393dc61557df530e75aeae94931f714b4d4"},"ros-humble-controller-manager-2.22.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-diagnostic-updater","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830961464,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bd4bc2b4339f80217d198178cc6c65a8","name":"ros-humble-controller-manager","requires":[],"size":309556,"version":"2.22.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1fe62457d7847828fb24155c4583b68d9617186ab37692c3b4c2ea3a4baf1eb"},"ros-humble-rosapi-1.3.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-rosapi-msgs","ros-humble-rosbridge-library","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670567699715,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b66f4f6169120ceafad97b3494feeb5f","name":"ros-humble-rosapi","requires":[],"size":27537,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4210842b1ceb4a83c27b0716c3e6cd5e8ed80bb506387262ef1efafc83f3cb44"},"ros-humble-rosapi-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-rosapi-msgs","ros-humble-rosbridge-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830692846,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1e81dab808b4d6ba0991ad7da0ee8627","name":"ros-humble-rosapi","requires":[],"size":41168,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"905c3973b9ae89659e4c2542f9a53f8bf6c8f68e5d8104675246603c7cbb8a83"},"ros-humble-image-pipeline-3.0.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670639098745,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1bebcba4004f7f085546305a6a04c477","name":"ros-humble-image-pipeline","requires":[],"size":12060,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95d1973c163230b664ddc9c1177f2907abfd8726303eac1a36105d356d0c24f9"},"ros-humble-image-pipeline-3.0.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840579755,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d704a47356541cab43e5cd2540354338","name":"ros-humble-image-pipeline","requires":[],"size":12514,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7954e85155a128957a7febdce5015c7372bc932ba19d89395716501205fa8d3"},"ros-humble-perception-pcl-2.4.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743036516,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95ee031d4a3a5e0c47276024aac5ecea","name":"ros-humble-perception-pcl","requires":[],"size":12297,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ef579a5780d7477d16d33ee063d7cda491fe785be920f9b695c92b50c85df54"},"ros-humble-perception-pcl-2.4.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770888709,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7e06be7c3c6e9ab849a5a74cf85fa222","name":"ros-humble-perception-pcl","requires":[],"size":12552,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fb6dfae00caa4ead04bec1ef21ffefc4220be33a4bda8c0837c3c00daa7c7d8"},"ros-humble-nav2-velocity-smoother-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670572276843,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d09f6b1e43bedcf96971d7c61fc44961","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":160528,"version":"1.1.3","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc744624a30da8c75ff4e35da0819c56dc1502f927cf00e6584c3a499e80fd09"},"ros-humble-nav2-velocity-smoother-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770424816,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"18ba3c85e0fcfd4f3d34bb266dd80e9c","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":159675,"version":"1.1.5","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0af8eedb272cbde7dc28364d455fa7dcded36543efe8937cbcf5c9d988fcd2e"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670569564370,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"28a7e1ee35975fc885bac61ce1a92bf8","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":9366,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92396ff64ed0268fa68fdaa1b8be49543b477b937a729332ecb00333640dbd94"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840344955,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a0724f86d4109dd5bfcfb97e99218667","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":11848,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"035a2b643531c75078fd17861545afda26ddda0d132270e72a657b5bc8f02d1f"},"ros-humble-nav2-amcl-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670569428759,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6a3a1444a17b79b7dfa94d94ced84f00","name":"ros-humble-nav2-amcl","requires":[],"size":404370,"version":"1.1.3","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0409fbc093fe86b4b6fc432b87829580a7d4ec87c31c0f41d1c8dba0136f4b4d"},"ros-humble-nav2-amcl-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770609164,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d8f799555cc1626210b13541d32f3d52","name":"ros-humble-nav2-amcl","requires":[],"size":404597,"version":"1.1.5","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67de251990edb786ab2d054b40be76f18a3dd1570404ab8e0f2985a3b9e8cf78"},"ros-humble-diff-drive-controller-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688020288100,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7281eb55a022c5e8ba83f9871322ca5e","name":"ros-humble-diff-drive-controller","requires":[],"size":245462,"version":"2.23.0","binstar":{"package_id":"6392dd9a46f81babca30428d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b636d75a312feb0b2474c135957730ddee88806d34a274988de270ae634e683"},"ros-humble-sros2-cmake-0.10.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h61b69e1_2","timestamp":1670569495986,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3385d76dd7d705299a3ee43d8f53bb74","name":"ros-humble-sros2-cmake","requires":[],"size":10288,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed0dcf0e62b4fdc15e745f5c225d584a71b8aae05ed67699b4d5e096b8aa111b"},"ros-humble-sros2-cmake-0.10.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840734555,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"964ea9bc103df3b1f1aeca098a383706","name":"ros-humble-sros2-cmake","requires":[],"size":12900,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0605c8069170fcea7fa2d93871fbefd6f97b0c6a88e2ac49f77010a21b7f17ae"},"ros-humble-rosbag2-compression-zstd-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571387589,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e289230296b6b3af85aca403b52cb83c","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":41732,"version":"0.15.3","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0875bb1db8d5a1e2445e07d23cfa31d38a9cd899c0baa989cb7bf89825e5f18f"},"ros-humble-rosbag2-compression-zstd-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830817241,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dcde1809cd230d93d18e401c183b0b71","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":42211,"version":"0.15.4","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a13d97c8a57a7061b4aee628ac2a4175cb5df75fdf50b9228dd100b6262bfe55"},"ros-humble-nav2-lifecycle-manager-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-bondcpp","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571161522,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"871daffeda288bb7aa6b5e45c132e1d3","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":137651,"version":"1.1.3","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f55b02422c63bc56bac636958f3db60784971039a1e865b270f9ba096691eb6"},"ros-humble-nav2-lifecycle-manager-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bondcpp","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770598342,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"77a91995077a854853ffa264523456e1","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":139253,"version":"1.1.5","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"841e2c4855389631973f1953f0f80fcbd5d8abbd8e4ee0b57295e4b94b2899bd"},"ros-humble-nav2-map-server-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","graphicsmagick","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571031536,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3166f77d1a5c5b15a49e71463c850566","name":"ros-humble-nav2-map-server","requires":[],"size":251058,"version":"1.1.3","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db1378a4a73fabefb6d4badd4482b510e421a473c08776bf343b9b3a4d87108e"},"ros-humble-nav2-map-server-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","graphicsmagick","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770447822,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a4baee2729ecb5b0938e0c3f2ebf6eb9","name":"ros-humble-nav2-map-server","requires":[],"size":250941,"version":"1.1.5","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d736eb03a86a4621a6207d0525e617cf5f561a3bf007f582ac8a3acaf294ca65"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571212248,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"38ff8f6b928bf9459f688a5fc3799115","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":27565,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dfee6782dbd6261ffb5227f8b4e71c0b1469a8bfe59c06c526a4963606b41598"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770664152,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"99ca799edc9be0c752e3f70b155d8a65","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":29341,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b61908e613fe87b93f7144fe31d0c01490d20d76ea19783c2d529f3adab71b83"},"ros-humble-nav-2d-utils-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571312571,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4cbbf2cddcf0fccd3f0f5dba238773a4","name":"ros-humble-nav-2d-utils","requires":[],"size":30682,"version":"1.1.3","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee4a5b99d0bf592e1deba8b72c884818826f2a8aac1b5fffe8c5ccdc0fdd4b5e"},"ros-humble-nav-2d-utils-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675771189442,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"db73a5981af4268bc11faf3ec27f299a","name":"ros-humble-nav-2d-utils","requires":[],"size":31202,"version":"1.1.5","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df089673acad7aaea30c97928c16416150377efff1fdeabd0d5c13557ab33272"},"ros-humble-ros2controlcli-2.31.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pygraphviz","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"osx-64","timestamp":1694672928599,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py310h5aa156f_4","md5":"8a8f25ffecd0cdbc801a52f17c52d372","name":"ros-humble-ros2controlcli","requires":[],"size":38140,"version":"2.31.0","binstar":{"package_id":"6392de6754e9ace854e33638","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d25fb58078c0a850041da5cfc9de88ca2fb21f1e1ae61a552f23dee97aab3a7"},"ros-humble-cartographer-ros-2.0.9000-py310hec8454b_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","abseil-cpp","cartographer >=2.0.0,<2.1.0a0","eigen","gflags >=2.2.2,<2.3.0a0","glog >=0.6.0,<0.7.0a0","libabseil =20220623.0=cxx17*","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-cartographer-ros-msgs","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-nav-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hec8454b_3","timestamp":1678331921662,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"735b5397df0ec8f4b37f673ebb11e652","name":"ros-humble-cartographer-ros","requires":[],"size":903639,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa42017d617f799ebf41707e9e1fed2434140d3ea6a871838fad0bf370ea6cdb"},"ros-humble-transmission-interface-2.31.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"osx-64","timestamp":1694672810017,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py310h5aa156f_4","md5":"e795cbcd983c0bba86701f8047e52541","name":"ros-humble-transmission-interface","requires":[],"size":56669,"version":"2.31.0","binstar":{"package_id":"6392de6966b3e4e3def7dd4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"065d4433095a0eec767afcf633d43ebc574a7066ae70b36b0c58cfff4f22861e"},"ros-humble-joint-state-broadcaster-2.15.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670572111894,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"30d45f5fe6d4dd28a8a27c788ea79520","name":"ros-humble-joint-state-broadcaster","requires":[],"size":116395,"version":"2.15.0","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c30cf5d8e61c516df9845f106df76fc9ec189d23c41580c3a920aec0bb39cd6"},"ros-humble-joint-state-broadcaster-2.16.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840139767,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c8a517727be74085a106f1cccff537cc","name":"ros-humble-joint-state-broadcaster","requires":[],"size":402967,"version":"2.16.1","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c4429d909d68739d94ae075deed21d7d5d2579bde05235b98d7607be6de6406"},"ros-humble-rviz-visual-testing-framework-11.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670571114835,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6e09ecfab2baf6d6f058a2b5ed976e89","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":82691,"version":"11.2.4","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbf60e21345cf13a7ebbc7b28b4426686bae2c02a5793efdb17cb71b3b7e2e77"},"ros-humble-rviz-visual-testing-framework-11.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675831139429,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e94e760f3164c8839450f159beacf5c1","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":83006,"version":"11.2.5","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"699e3e215d17c019976f490186983bd191441012a27f69d0f6672d4f7160a609"},"ros-humble-joint-trajectory-controller-2.15.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571954737,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0f31adec6f1ff452ec3b4472223c0048","name":"ros-humble-joint-trajectory-controller","requires":[],"size":265369,"version":"2.15.0","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"053d9df0809ed51b2b6f8604acdefd3be85e6a5d8305b0a04dcc5501bcad78de"},"ros-humble-joint-trajectory-controller-2.16.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840696770,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"84476f730b0bcd0e271f905b63bb8419","name":"ros-humble-joint-trajectory-controller","requires":[],"size":562405,"version":"2.16.1","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02e215e089aed59fcb8b62501d96b58ff32093768bae66c786466d120e5e0017"},"ros-humble-nav2-behavior-tree-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670571776179,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0dacf8065681dded4209f05a3b969402","name":"ros-humble-nav2-behavior-tree","requires":[],"size":1718763,"version":"1.1.3","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22859b5d2fefcad36ad84f88e7f2b9d79a57ce8904598d91a4ce85f20b8f0703"},"ros-humble-nav2-behavior-tree-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675844227397,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"beeaee7ba097f6b3b56766eabd48a1df","name":"ros-humble-nav2-behavior-tree","requires":[],"size":1847538,"version":"1.1.5","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b2df7d711efebfbcb05fd237fe6263c6fd6290e89ba33c9a7ca5da73be743fe"},"ros-humble-forward-command-controller-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687845814694,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"39418cda6e9836d531881be422326ef6","name":"ros-humble-forward-command-controller","requires":[],"size":156751,"version":"2.23.0","binstar":{"package_id":"6392dec66a03c9fad28ecf2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20071a74e9c476925f64158b17ae179be09a7e618a8b23b394eae06ad0b680f3"},"ros-humble-gazebo-plugins-3.7.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-ros","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1677542847675,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5f41067f9a2900b10ede81bdcb677bfe","name":"ros-humble-gazebo-plugins","requires":[],"size":2808089,"version":"3.7.0","binstar":{"package_id":"6392df53e6a2f79ab8534af3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfd697729cd5568bb9a01daefe178adce2e45e4ab363d4e5945e0dda61b37542"},"ros-humble-force-torque-sensor-broadcaster-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688262760544,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"87dcacf87d4152996de083feea12a3e7","name":"ros-humble-force-torque-sensor-broadcaster","requires":[],"size":100501,"version":"2.23.0","binstar":{"package_id":"6392df59e6a2f79ab8534dd9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ddc5b0eef15e8e484a86b4caf51e14b21d3a928af4f85c44a2431a74d7959b9"},"ros-humble-imu-sensor-broadcaster-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688262567641,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa65f543c5ff5d88b5c263eb4704d1d3","name":"ros-humble-imu-sensor-broadcaster","requires":[],"size":99833,"version":"2.23.0","binstar":{"package_id":"6393ee5fe6a2f79ab8ccba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1525c77aaf72a3176925cd7d52fc9fbda3bbb522ef10f6d6a77c57b9722e90de"},"ros-humble-ros-core-0.10.0-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670644073472,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"11ccbd83feb57073090b2f78e6af0c90","name":"ros-humble-ros-core","requires":[],"size":11852,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af975f815e83c948481a1e26183d4317f5dae66c96ad413dfe0050899d2eb4e1"},"ros-humble-ros-core-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675842454179,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cbfda73d0469486f3e20f3f36ae77003","name":"ros-humble-ros-core","requires":[],"size":12260,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e14c5c19ca921a80aecfae71ff6e88d9c77aad42671afe876ade43e0d78cca33"},"ros-humble-ros2-control-2.31.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-joint-limits","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2controlcli","ros-humble-transmission-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"osx-64","timestamp":1694673029794,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py310h5aa156f_4","md5":"962bb2aa7ef72367d5f23cc09dfd50b2","name":"ros-humble-ros2-control","requires":[],"size":12275,"version":"2.31.0","binstar":{"package_id":"6393ee8454e9ace8543c1b9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a670ac4eec8f9446a47fcc48dd136886fc97cf52c2c22eb11842b6b48018990"},"ros-humble-turtlebot3-cartographer-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cartographer-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332618702,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9a45fff0917300d7499fdf8e1e570b3b","name":"ros-humble-turtlebot3-cartographer","requires":[],"size":20076,"version":"2.1.5","binstar":{"package_id":"6393ee87a2b7121008f884c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db7e2ef5752915589e41c8e73851d8fd29555328433ea0a545c87390f82a5a54"},"ros-humble-ros-ign-image-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793965309,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"02635bdd10b090b6716869df488f7b31","name":"ros-humble-ros-ign-image","requires":[],"size":19884,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5df650c4aa39778cd461925ff9dc1a03c35645fb23cb59b71ddf05772b7f490d"},"ros-humble-ros-ign-image-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675770814730,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"196e249940985b87b48cf73b708b4c78","name":"ros-humble-ros-ign-image","requires":[],"size":20151,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9836c422628ddf9b60e3e91159261ee0b67a52a36c42337a71693bf30f2d7816"},"ros-humble-ros-ign-gazebo-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670793824242,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e7e9e9c0172410cf9f9af1544af70aea","name":"ros-humble-ros-ign-gazebo","requires":[],"size":22793,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"146682a64e4b375325391daa9826d4a954d0d3010e48cbc3f71b8980d331b71f"},"ros-humble-ros-ign-gazebo-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675683382866,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fbd0500b4cd63ff51efb46c81a01d7e2","name":"ros-humble-ros-ign-gazebo","requires":[],"size":23108,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb3277afc71272e49674ff6fa8f0e3287e368d9b91efd8c7bd4cc27b0318263d"},"ros-humble-admittance-controller-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-filters","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-trajectory-controller","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687846711981,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"445b8fe202495e055d51ca41e794531f","name":"ros-humble-admittance-controller","requires":[],"size":286088,"version":"2.23.0","binstar":{"package_id":"6393ee9f4f66fd116f5ed0be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee445e5976a56cbfcf530fb59bb8b67b23b8d03cb2c9348a5bc742ffca9407f2"},"ros-humble-effort-controllers-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688020055391,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"34c7766b39d4acba56c75889ff47b5a0","name":"ros-humble-effort-controllers","requires":[],"size":26543,"version":"2.23.0","binstar":{"package_id":"6393eea02b3749bdb8f153ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd72c03f8673fce6868df121e2fedfc32c5a9dd4e1a3451a9b9e47f72d9932a4"},"ros-humble-nav2-costmap-2d-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670641832582,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3aa22d3f27113bf60256817c8a951aed","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1351981,"version":"1.1.3","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3852d7fbb7866d233f891b656f5473619b32ea106c3fae91d71112a3122a26f0"},"ros-humble-nav2-costmap-2d-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675825598073,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ebdf71b44735821a053306416467c06d","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1350369,"version":"1.1.5","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a2783bb11a868a6e1874828097d0d3ba12182c794f483136479ede8881cce8c"},"ros-humble-moveit-core-2.5.4-py310h8db8473_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h8db8473_2","timestamp":1670642704233,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3aa0de1c4129021b80d8fc0367e2a322","name":"ros-humble-moveit-core","requires":[],"size":1419782,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"226ab6d2f3115fdd945b6fe83522597eac69c39d68d52ffc3139dfa63029ddb5"},"ros-humble-moveit-core-2.5.4-py310h29f914c_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h29f914c_3","timestamp":1675826288845,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9d9b1404199120432564c29f9d6debdf","name":"ros-humble-moveit-core","requires":[],"size":1422568,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5cafecff0907b3a98a8163e56c8f2f337b6516b80f972aa49a9dd22b0e80e72c"},"ros-humble-position-controllers-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688262373933,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c53ba86d3bf37c67e8a3e7ddcaa2cc2e","name":"ros-humble-position-controllers","requires":[],"size":25993,"version":"2.23.0","binstar":{"package_id":"6393f3694fd2d87ac8ef7853","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a23d2d78e4821b2e9aaf874a1dea367e449560d877558e7acd44b5f778d58c2"},"ros-humble-rosbag2-transport-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670642905854,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3eeacf05b9c70c6685174dd74878d7ed","name":"ros-humble-rosbag2-transport","requires":[],"size":294481,"version":"0.15.3","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4662b7c61316275dfcc55d34500879f677784fe28e146eebaaaca6113ea4f563"},"ros-humble-rosbag2-transport-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840213637,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6cb831c931a113b885bf3a2de776cc02","name":"ros-humble-rosbag2-transport","requires":[],"size":295283,"version":"0.15.4","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa4164842778801cc46e8542d9d0b0a4e9786736cf3fcece3652125b002d742f"},"ros-humble-rviz-default-plugins-11.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670643976596,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3f3748ef3a0fb028f635d99879c4a570","name":"ros-humble-rviz-default-plugins","requires":[],"size":1658543,"version":"11.2.4","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3b95abec28ea0e61be1c4e32e209ecff38c5ae1c601bbfefb845320422a4023"},"ros-humble-rviz-default-plugins-11.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675843193977,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a17cbd7929fe702fe097bb78c4043ccd","name":"ros-humble-rviz-default-plugins","requires":[],"size":1633115,"version":"11.2.5","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87b85922c5fdfbbb4e52bc98a66eeb46736c3d0280e02d7f541e3738f150410f"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670677102299,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e965af7b6a5de3a17cf374533a64fb7e","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":144010,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed4c296603ded8529657615147bc79608454b25be47eb6b713b2cc3a95cefcd9"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830620197,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b8dcf507ab50836ff0e4bcbeee2cf62","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":144489,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"029f2c87243c8cdea6ba779adb56c3e03f66e00bc1562e8d5ebfa4b94aa911e2"},"ros-humble-nav2-rviz-plugins-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670677430492,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"51453c6d80c8f73e95d0aa430fb2b10a","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":373890,"version":"1.1.3","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a859c5ceb20f3bdbd86b0de3b22221d65802e586ab42b5520184311729636480"},"ros-humble-nav2-rviz-plugins-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675844966683,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"81085a5f2f41ae1d38088015eb2b7182","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":373376,"version":"1.1.5","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f0165349d80a98d98e8cfcb0b213feea5121bfd2331c424e57c5ebec68b51f3"},"ros-humble-nav2-core-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676428544,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ef635d23ac151ccece39174477ee241c","name":"ros-humble-nav2-core","requires":[],"size":18284,"version":"1.1.3","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcccc1e39887809da18d355d00fc91a175f6513d1ef113b3f72b109579fffd65"},"ros-humble-nav2-core-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830488558,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f9ce17c35a2e18491b38445d8db8698c","name":"ros-humble-nav2-core","requires":[],"size":18656,"version":"1.1.5","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"693ce642b511579770194803fab2659f95b3066965fa72bd1206efdda076a202"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676699770,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dad13600bcb8c67750568dbd302d0dce","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":288361,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d693ddbc4b5021caedb086fa12b9e9295ba124ac908e4926cdfcc09d2f9fd243"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830713919,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"25981d41e03f931f6d6fca39a9bfcd22","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":287909,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c835da5b2b828ed81d3a3c8711b79cde9e6a9ea5dc279d5d567bbbcdb2848af"},"ros-humble-costmap-queue-1.1.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676855060,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13edc676bb5c7ed82a422b423d093d6c","name":"ros-humble-costmap-queue","requires":[],"size":26048,"version":"1.1.3","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6547f9d00bac3711242905aa228d377a27aa38cdcc9a4937a3f50d3b48f5dc69"},"ros-humble-costmap-queue-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840441250,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f3bcfdc34e07e63265be0b4c35480628","name":"ros-humble-costmap-queue","requires":[],"size":26508,"version":"1.1.5","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c5e4dfb5251a5dcd963330efd2084ad1d688b1ad1e12c39fa3c1ed2bacc8c46"},"ros-humble-rosbag2-py-0.15.3-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670677044245,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa43ddda8da08c8b9afebfd5267da348","name":"ros-humble-rosbag2-py","requires":[],"size":498655,"version":"0.15.3","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c61afae8ca01987cfa9307b6d628241f89ff1d86beb0cd5399ecbccc9f70e884"},"ros-humble-rosbag2-py-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675842005660,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"642d4968fb932f6fc6f026d31b5ac3aa","name":"ros-humble-rosbag2-py","requires":[],"size":499545,"version":"0.15.4","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8bb9544ad8a28018d64a6a77c103fc0561b3d095cc45fd15cf7157f1e07474e"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676694003,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"181949dacfa48c416bd4c817755d5327","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":113284,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3d967bd484f041e9a3713354de22db05b7f80cd55f400837d9e31c29cc4b36e"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830553650,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"672fd20828291d65a426d5c22b791e2e","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":113661,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da52bae8ebae17926f4d8c9efc855a06f5e9f47f695a275e5658c9be16c48207"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h61b69e1_2","timestamp":1670676892667,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"869b2189dbac247ed3b5dfd86145479c","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":144156,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"720226a36bfde2a5435420fc204ec6286816cdccb5fca09ffb4bc81a1d69ebeb"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675830715093,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"07a2238315d92095d275986345543384","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":144509,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dd2faca6895286f163ab7b62a5dbd65a37ff89c6e3322ac3097c9465e5018a0"},"ros-humble-rviz2-11.2.4-py310h61b69e1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h61b69e1_2","timestamp":1670676478667,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8ba9eeb09aa7db860355a2a39bba66fb","name":"ros-humble-rviz2","requires":[],"size":23107,"version":"11.2.4","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e600cee619b38be389f51a60be07919727aad09c1a740b8f9837f16bc53d98c"},"ros-humble-rviz2-11.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675845750498,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d0f94e34226769a3a8be39ae5f262282","name":"ros-humble-rviz2","requires":[],"size":23441,"version":"11.2.5","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23e66616b06df58c6f7d2cd544cb2b6e25169257a730ec3ded5d7715946245d5"},"ros-humble-nav2-smac-planner-1.1.3-py310hb503a67_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","libode >=0.16.2,<0.16.3.0a0","llvm-openmp >=14.0.6","llvm-openmp >=14.0.6","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb503a67_2","timestamp":1670743636104,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3ccf795e7187a7d8fb6fb840be19ebd","name":"ros-humble-nav2-smac-planner","requires":[],"size":696713,"version":"1.1.3","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2142a4f2823530b1d4d7a37aa93956a86c9cdd2ac5e5b8b492b236b8d230dfc1"},"ros-humble-nav2-smac-planner-1.1.5-py310hb503a67_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","libode >=0.16.2,<0.16.3.0a0","llvm-openmp >=14.0.6","llvm-openmp >=14.0.6","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hb503a67_3","timestamp":1675841031269,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bd2cbb737b6a2d6010eaa40c1595bc3c","name":"ros-humble-nav2-smac-planner","requires":[],"size":725176,"version":"1.1.5","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e410d0b5c1bc92c57024cafea02f988b2e7da23eb61ad6fc518d56c4d6544b2"},"ros-humble-nav2-smoother-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743235838,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"66f2618b7d3eb03dccb2a68db1215cac","name":"ros-humble-nav2-smoother","requires":[],"size":216370,"version":"1.1.3","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a15b26111af35ebaf0257e1e65200a49e3a9d6586421467ea8b72c879154157e"},"ros-humble-nav2-smoother-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840673194,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b32d3cb9764f94e40992ca8f7e08bfc6","name":"ros-humble-nav2-smoother","requires":[],"size":216809,"version":"1.1.5","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d9d101a6a9e7d918483250727c3a54221d7d30a63c51d71aaf2440bf88bb3ca"},"ros-humble-nav2-planner-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743816486,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a33e8afa057ff41dbbc9c225b6f131ba","name":"ros-humble-nav2-planner","requires":[],"size":230220,"version":"1.1.3","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"245045ab59b807079a2c8bc1e3a7faabda0d9b73df2f5aae51ea956f15878d87"},"ros-humble-nav2-planner-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840203237,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3a252f4477886ee1f3b61381cff7257","name":"ros-humble-nav2-planner","requires":[],"size":230775,"version":"1.1.5","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af88ef79ce9619985915c8ee0fd7862f1396462339922cbae950841f8d74b973"},"ros-humble-nav2-navfn-planner-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743965498,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"15c086333f119dd1b713b6f52d78d46d","name":"ros-humble-nav2-navfn-planner","requires":[],"size":56126,"version":"1.1.3","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9afd65d3442188b83eae0aa619b986b5998db7479783a898050e0e3bbfce1dc7"},"ros-humble-nav2-navfn-planner-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840341542,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"427f91fa9f66ea913549fd8537d67543","name":"ros-humble-nav2-navfn-planner","requires":[],"size":56439,"version":"1.1.5","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10c5a152c7c9821f65b9c35a04d21274a1696e3e2d0f7f9beb073ff5c494fb3b"},"ros-humble-nav2-theta-star-planner-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743043196,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a24a2e6e55086efea3f1a1d00b6480b5","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":47164,"version":"1.1.3","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4be6c71ef99641013c3714b85f655d1db61140dfd9f4dccd10bb63d2eb3d8961"},"ros-humble-nav2-theta-star-planner-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840495210,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea0de1976e68b0ce14eb354d030bbf04","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":48592,"version":"1.1.5","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46b3b518c5887bd67e264a8609c6d3faa0fdde6054079b2a2b025c7d3eee4c71"},"ros-humble-nav2-behaviors-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793979995,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8374883d24b1044242c44a779489ee42","name":"ros-humble-nav2-behaviors","requires":[],"size":585090,"version":"1.1.3","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c863562a5def84d5e5c5378af4e7940e6bf489039445af570754c1850930e4ca"},"ros-humble-nav2-behaviors-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845564750,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e8223523c3cde38a15ee7cbf2364b956","name":"ros-humble-nav2-behaviors","requires":[],"size":583523,"version":"1.1.5","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41e83757b4c2aa79aa61adb3ce97d8fa4619e8371e9b038086b64194288af264"},"ros-humble-nav2-constrained-smoother-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794942574,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0116bfdd00ff4dd48d5317b554f91492","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":76169,"version":"1.1.3","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26c77f9a869661332cc2931c75eede92c698ab03b013a864936d31992583f0ad"},"ros-humble-nav2-constrained-smoother-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840483416,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7eb30bb18dcae4987bbc898fef2b6b5b","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":76591,"version":"1.1.5","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"795ba8e3781d57d96a0e82015490e79d1431e51d8498f9c91a44b0962224ee0f"},"ros-humble-nav2-bt-navigator-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793667771,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95005852203f04e3f981d479fcbc172e","name":"ros-humble-nav2-bt-navigator","requires":[],"size":325064,"version":"1.1.3","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad70d4032d15dabb1136b60597e1a5cc122e1cde6e30365e223012db466c8ab6"},"ros-humble-nav2-bt-navigator-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845248497,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"783d18a392f2c8170de686dff5e53ae6","name":"ros-humble-nav2-bt-navigator","requires":[],"size":323867,"version":"1.1.5","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edd42748c80a02b771e973b1eebf882f5e0a611dbf7f50205313a54d0fc366da"},"ros-humble-nav2-controller-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670744041544,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5729e4df5d620ee49eb617683f9a659e","name":"ros-humble-nav2-controller","requires":[],"size":360026,"version":"1.1.3","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e92b4b48c6b7ee6ffa00086229942e0d89ab2e825c31eea381d1f99b05a75639"},"ros-humble-nav2-controller-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840571311,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7f1f977aedddca5e271f2ed23c609c00","name":"ros-humble-nav2-controller","requires":[],"size":360149,"version":"1.1.5","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fb728f0d91c83e71bfcb0840d72cb4cd1e3338251a45b60724248633346d3d9"},"ros-humble-moveit-ros-planning-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743625935,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b671ecbaa4857b6abe1cb4cb48767a6c","name":"ros-humble-moveit-ros-planning","requires":[],"size":1545053,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"747a01d079558e4a5b5f3f67feaa6e5cf8097cb11193789f8b23b176fc725864"},"ros-humble-moveit-ros-planning-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675841229283,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"62368fff13b15fcba5600c216e767a23","name":"ros-humble-moveit-ros-planning","requires":[],"size":1538940,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8feee18c1a6263b20a71e2da606f19be7b3d25b3c2ead5a54b37c3dd15170304"},"ros-humble-nav2-waypoint-follower-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670744339255,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"169ba58a94ba961e2f5417f57c57c673","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":395474,"version":"1.1.3","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"917a46d70a21aee23fb22b4ab616fb3d1bf978f07cf8f02fdb7cd024f3cfed67"},"ros-humble-nav2-waypoint-follower-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840364545,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b20e4733bc5e674cc4af85cb64e17af5","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":395537,"version":"1.1.5","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"382d4b6646d3a2325471841036241305ccf4906223f32bfbb4cd1dc3cdb3caf9"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743791737,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b61e78257d62ccc98a002fa703ae8c0","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":113860,"version":"1.1.3","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fb9216bd38fc9ac36102997a7fb9ea0338b00c15dc5ee43a647c5ce949a989c"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840363190,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ae28fc9fe80e1defd6a1c2b057b796e9","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":114264,"version":"1.1.5","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54b6e6a451b71e9557160fc44517693d85b0752d02d3ce67638abd54e540cac7"},"ros-humble-dwb-core-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743050121,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"056292f6b04cfb752fe395e2d519aa50","name":"ros-humble-dwb-core","requires":[],"size":227212,"version":"1.1.3","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64cdbbf05313f868601f113ec92f3c36fb9440ce57bbd1b36a2cd4e8cc065999"},"ros-humble-dwb-core-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840325727,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b1f0b98645e0fe641684bfc46d9d760f","name":"ros-humble-dwb-core","requires":[],"size":226400,"version":"1.1.5","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d27272d65ffc0900973e409035ca5983313c33ed26e357ab8962c90cf19cacd"},"ros-humble-moveit-plugins-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670743138028,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eb40049c1de2f15fb8f13b60209fda2f","name":"ros-humble-moveit-plugins","requires":[],"size":12035,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"256a501df819aa7cf5909dde2c7a12793368535250c40adb0dc5d5dc21c6f2d6"},"ros-humble-moveit-plugins-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675840106071,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a4b5b57dbb6476700797a6c21c4c2d51","name":"ros-humble-moveit-plugins","requires":[],"size":12323,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5038887397c04dc17a1f32088a881c44e8e8a2babdf5ceb2903c8d0a61cbeb28"},"ros-humble-moveit-kinematics-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794504591,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"467878872779b5c414b2639be4dfd8bf","name":"ros-humble-moveit-kinematics","requires":[],"size":277868,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b25d833538412fc62478fd0be8a60e108efbac1c1b82ced480e163d8578ddcb"},"ros-humble-moveit-kinematics-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675844481655,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"08a8c7b80a3623600ba279e45c5251c9","name":"ros-humble-moveit-kinematics","requires":[],"size":272200,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6c9d6ef6fb16a4f3f153651cfc5015babe485869c2d658b26be9db81dc8cb9e"},"ros-humble-nav2-rotation-shim-controller-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794717520,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"252cd244b697d0ed960f1a9c2749427d","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":112399,"version":"1.1.3","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64d2e0f66ce8b36bb23062799cdeb529d371240fc095b4e91a105e441f36707e"},"ros-humble-nav2-rotation-shim-controller-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675842165736,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3d80c2b5553ee0d08e22f53b05e971d","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":112714,"version":"1.1.5","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ed034e59d3472ca863ffd4c12a104f615f5dac29076cd96cde4c2a786b5ea81"},"ros-humble-dwb-plugins-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793772721,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6bc1ba47c1c6f74f91bc22f7bf25ad72","name":"ros-humble-dwb-plugins","requires":[],"size":55203,"version":"1.1.3","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75391f5836002a75b9ed61fd72a412bed8baec58228ac973cfe7e71fcfee8346"},"ros-humble-dwb-plugins-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675843416547,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d33dc7c66fe6002acca67fb3bbee06c9","name":"ros-humble-dwb-plugins","requires":[],"size":55481,"version":"1.1.5","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72d154e386726aebbaa7498039227b1ec781131c294a80831664ed846bf85de4"},"ros-humble-dwb-critics-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794071630,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"82c42ddee76a4756f672d69150c47050","name":"ros-humble-dwb-critics","requires":[],"size":65959,"version":"1.1.3","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"474394a68e7683644e9051a41001b531beffd7522beb7463e6663b66d6a14637"},"ros-humble-dwb-critics-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675843675931,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f7e5a7e259504504c6b0214af3b4ff6","name":"ros-humble-dwb-critics","requires":[],"size":66321,"version":"1.1.5","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2b427e4c8c0b7aed75393a86b85ac3fc8a169ab6035487f4b3e47ab96a1b054"},"ros-humble-turtlebot3-bringup-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hls-lfcd-lds-driver","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-turtlebot3-description","ros-humble-turtlebot3-node","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332696929,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aad82002acf490e213f8e9f11e1e56c8","name":"ros-humble-turtlebot3-bringup","requires":[],"size":18219,"version":"2.1.5","binstar":{"package_id":"63964971a2b7121008e87c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f03f2ca144c39ba1a0c9bffa8fce17c7891144cef0a8e0a3737026f97a29aa6"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-gazebo6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794062244,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a047964437d26316b8d169ecc108f20d","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37207,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d4a595edc4d29db814a63860e3f2c0d7ecdc3eded2d5d8d5f22cd086cbcc54e"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libignition-gazebo6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675846611628,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"282e8582652b5711cb271bc8463671e2","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37610,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a9647ca7741a36a08616c21e8bd24db7e3443a46a97a40f2bcc8273d8e9d29b"},"ros-humble-rqt-bag-1.1.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793888029,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"60e7de8c5d1885759efcd44dabe67622","name":"ros-humble-rqt-bag","requires":[],"size":150364,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b329e4336e0c0ab842d29948da90817e91e67a970aaa5bc5a501159704ef4c00"},"ros-humble-rqt-bag-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845249830,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e28ee90b8eb3ad751bb3de729f627df3","name":"ros-humble-rqt-bag","requires":[],"size":148754,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b90b6aeb07087440d5d2152483c2cca594f4f48d0e63871c5f2379dd44bac844"},"ros-humble-rosbridge-server-1.3.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","tornado","twisted"],"build":"py310h5aa156f_2","timestamp":1670794153336,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fd23f8c8c847cedebd5a3c54c055f0f5","name":"ros-humble-rosbridge-server","requires":[],"size":32877,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e22d3c5585b3a5908b1b91bd3fbdc4585f00edd1a3fae8fd1238f9a652b86481"},"ros-humble-rosbridge-server-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tornado","twisted"],"build":"py310h5aa156f_3","timestamp":1675840510683,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"829744e0f8e5a217fd443d883e8a2c84","name":"ros-humble-rosbridge-server","requires":[],"size":33274,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd1be7e9e1cdd16b1c4bfce6f50004a279ba3a2e6c2258ef85c6adb9d5816f70"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670793794542,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"70533d8d09fa3b8f3c4964310b10bef6","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":205458,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c006a05b80b7765f825d4c14aff56b4b021290134d99e1e5a9d3c2be162f5233"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675843034628,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f73055e0800fe2bc3cb12339da14ab32","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":204399,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dff6d811f0cd112ca7d7606050ff8ea7f536906e7413377e237e77e2da5c5c2f"},"ros-humble-slam-toolbox-2.6.4-py310hc88cb4a_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","liblapack >=3.9.0,<4.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-builtin-interfaces","ros-humble-interactive-markers","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-map-server","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","suitesparse >=5.10.1,<6.0a0","tbb >=2021.8.0","tbb-devel","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py310hc88cb4a_3","timestamp":1678330512067,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"502bedf4d5c385ceac3cd357c60f9b46","name":"ros-humble-slam-toolbox","requires":[],"size":2524264,"version":"2.6.4","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd245acf421c4c1f8ffe250af5e8e25ca3986152eae42cfbcd6eef0f74f3fef1"},"ros-humble-nav2-dwb-controller-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670795190049,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"074d0336ac062343dbccb5e36f4e0a7a","name":"ros-humble-nav2-dwb-controller","requires":[],"size":11793,"version":"1.1.3","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2652e615b17fb99f95f03c839a257847252b05481c7a4fa90cbe848ace1dee0f"},"ros-humble-nav2-dwb-controller-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845059592,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"689265574ad0f38d9a248d1374ac2f7f","name":"ros-humble-nav2-dwb-controller","requires":[],"size":12028,"version":"1.1.5","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"965208b67feaf95f9e83bb79bffb3e3e60f906fb3326a142b7a5294aa9935f4f"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794294501,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b97a845f3186903c223282ac4abb0e1d","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":599299,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86489585bff8f0d38559f4d638e27e6d7a24b946b1bd20cc260c3705b04c8dd5"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675842437230,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aa40822f06335c7fc4e842b8cae0b29f","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":585292,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a92025ad78ba5e9bb426ea717e7f6332a9b8cb01a8c2c156662c1409475dc43e"},"ros-humble-moveit-ros-move-group-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670795503701,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cde8ed4d0e01989c0e4018883512f05a","name":"ros-humble-moveit-ros-move-group","requires":[],"size":436102,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26a457787cbcd3d429dffe173d5004a838235e7d4b074725def2d4cf20d6f516"},"ros-humble-moveit-ros-move-group-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845114819,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b2d3504441608d1f9827859dd05ac32e","name":"ros-humble-moveit-ros-move-group","requires":[],"size":402992,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d1cf41c2db25d6ade9364b2c51f948202e280fd9ef8a7aa8ad40dbf02a8172e"},"ros-humble-moveit-planners-ompl-2.5.4-py310hb503a67_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb503a67_2","timestamp":1670794714052,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7a3fab2cf39beede9e9721914cee55da","name":"ros-humble-moveit-planners-ompl","requires":[],"size":395403,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a868f6b78ad4f06b63b08ce19d7525ad1bb4e934b1f0ec91e82d59daf5f5521"},"ros-humble-moveit-planners-ompl-2.5.4-py310hb503a67_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hb503a67_3","timestamp":1675842848905,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e82571891323a98139ac9785608c6349","name":"ros-humble-moveit-planners-ompl","requires":[],"size":400998,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26c82638f94f72b09b8e659ab630cdf3f354caf58f185a7164d94d4c16fc2685"},"ros-humble-ros2bag-0.15.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670794806895,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e2448696d5d52e993fb5cc3f2a698452","name":"ros-humble-ros2bag","requires":[],"size":38072,"version":"0.15.3","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40dc9e5b33fe869c2a933bff031322479bede97512fd1972420fb6f6517257f9"},"ros-humble-ros2bag-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675845186523,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"062bd2af273db9fa5bcecc208fe5b726","name":"ros-humble-ros2bag","requires":[],"size":37288,"version":"0.15.4","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0e1c65e41b9f83861dbede694160a8ce0ade3eb9cee53f92793332530444e0d"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670795854130,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c73346e3ba1c5eb145fcd8566bfcc84d","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18147,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70881ce2aad65455918c75352ac9a7543bf292aba686a85e957c36ab207422f4"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675847982588,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3fb5e692f356f8a69472cb2bbdafa286","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18545,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b557422f1e89ba41082243f343a24c92329d816e689a42ae374bd8caf3127c61"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310hc887327_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hc887327_2","timestamp":1670795765100,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ebb8b53af68257ebb9d77113096bac2c","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":202576,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6addff6a0af62fe69ef7fcb967e9b266d76daa79a29428cb4c6876c7aafaea5"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310hc887327_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc887327_3","timestamp":1675845427981,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"80149844820c2884ed8ac1d8f4dc41ba","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":202963,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16f6bbb75e0aa85997b2557e7eb473448dab9a577a08ca0675d96e09d33dc366"},"ros-humble-rosbag2-tests-0.15.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670795573677,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bd514af811abef57c51deb5a24dbcfb8","name":"ros-humble-rosbag2-tests","requires":[],"size":11395,"version":"0.15.3","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26f52924d113f7bf314e245e2938a2ff82be32a2bac366b5d5c1e3ab5bb0b372"},"ros-humble-rosbag2-tests-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675846481198,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a779c8537ad8519d71190f98fef1c9c1","name":"ros-humble-rosbag2-tests","requires":[],"size":11671,"version":"0.15.4","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fc72307f1216aeeb1d3967a7c4a46eb43fa874e0ba6571ce321fe133377ab06"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670796516507,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9ceb0553b0933fdb1eb80935fcba7c82","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":283048,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98569791f37ee52200011aa50340f73634f576f95df979af40a6efa6941f06ef"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675846403796,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f5758acf582f545a92c76c16f3139b5f","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":282995,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d56205f7b32e9e0582b7685ce038bd5be489ac0809fc77f71e623ae676033fb"},"ros-humble-navigation2-1.1.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670796158072,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5a73d3bf08fdca44f32b50e204886c82","name":"ros-humble-navigation2","requires":[],"size":13478,"version":"1.1.3","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"639dc16ce9834903f110a29912892ac272a6ebe1e76f4b1082accefb59ff4dd7"},"ros-humble-navigation2-1.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675846072518,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ed830fb1dd6d6119c397681dd8a797f1","name":"ros-humble-navigation2","requires":[],"size":13718,"version":"1.1.5","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ac759e6a901c950c63eac377cb6e8564f970a85f00021a031cd0a046407c5f6"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670796600611,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"29eb7bfc98cf1754b6f4a387d08db870","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":24360,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"274b8f70db23057ad36503c60a71db1314bcf966240c879aa9f15a59cba7bdc2"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675846536499,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"33f9a69f7d03d27332d7891a8e64e35e","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":24585,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5fec10a1c97f67a8cd537a3b353398626e1c38ce6d20487380021368dc271da"},"ros-humble-rosbridge-suite-1.3.1-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-server","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670795156160,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"25f2a717b62ef1356865f23a78174935","name":"ros-humble-rosbridge-suite","requires":[],"size":11371,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39e6726b929dde1e1c4e068b687ed0216708b6cdc9d5633e4e7fa7ef1d3fe05e"},"ros-humble-rosbridge-suite-1.3.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-server","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675842521458,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3845fe19428391629768a4db8c99404a","name":"ros-humble-rosbridge-suite","requires":[],"size":11671,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"882d864151e847c8d93a44077cc92d841915860e4c4f5f0e79ceccc7b453cbad"},"ros-humble-nav2-bringup-1.1.6-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-nav2-common","ros-humble-navigation2","ros-humble-ros-workspace","ros-humble-slam-toolbox","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678331427593,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f3c50da9452a96343f60ffec4ff1638e","name":"ros-humble-nav2-bringup","requires":[],"size":46559,"version":"1.1.6","binstar":{"package_id":"639653576e0eca100b8bb871","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31bd848f0c0055f081ad39230b3ff87d38a27f2750dab1b3be2550757b6ea7fd"},"ros-humble-moveit-ros-visualization-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670797797337,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"05e53985217dda8ab1c641410b2fee91","name":"ros-humble-moveit-ros-visualization","requires":[],"size":983769,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39c8c50308bbc19cc369d31b99cac83c8b9c141d9de947307c2ed598e45c579b"},"ros-humble-moveit-ros-visualization-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675847407723,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"08679deecafa3dc31884a2a159d673c4","name":"ros-humble-moveit-ros-visualization","requires":[],"size":978680,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b31cde81cb08c83bdf8daca666082846dae87e9103e7e7488e2c8f563ebb3d20"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670797878313,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4bf56788a79726ffa79185b041cbdcf8","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":226984,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c043266df8c1006e844044ac0292b10f3bafc4ddc12aeb3b1e3190a9a56be377"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675847538610,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"116d88b39e4d2522c1612cf7feecef8b","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":228577,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4e3343ca60fcc7635af82391d8c4b6fc4786b153d3532fb4497630a85d7eab1"},"ros-humble-moveit-servo-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670798466163,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"26c9c24a6833d9f8c3ddeceb8780856c","name":"ros-humble-moveit-servo","requires":[],"size":1023248,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f420f8c9be175c3e26591a297f007155969271e968712a4c2fa5bce603c1d16a"},"ros-humble-moveit-servo-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675847874897,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6489df70a68b782b2115c17807973011","name":"ros-humble-moveit-servo","requires":[],"size":990682,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"607ee5fbe0fa7e2de1835f8dd7ef15b84b541e1a5f27182c5b1b0d6e45838a6d"},"ros-humble-rosbag2-0.15.3-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670796668115,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"376aa360a1745e54e75a9f97fbd5b754","name":"ros-humble-rosbag2","requires":[],"size":11470,"version":"0.15.3","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af6f77b956165421535f21d2ddd0576a90878eb41f6725f8670e3a303de85eb0"},"ros-humble-rosbag2-0.15.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675847480574,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ba21ccb661ca57e50f0785157ec3c836","name":"ros-humble-rosbag2","requires":[],"size":11746,"version":"0.15.4","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"935e60931483b91ab7ebc50253be4b39dd368a389cd4df0261bc9647228db9f9"},"ros-humble-turtlebot3-navigation2-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-bringup","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332540932,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ca93a39f3af304cc1c4f135d21bbe7af","name":"ros-humble-turtlebot3-navigation2","requires":[],"size":23581,"version":"2.1.5","binstar":{"package_id":"639654cca2b7121008ec4d04","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6c001939bf921e112a4c83b28a4511f89672db33081fb0976caa6d34a00e725"},"ros-humble-moveit-ros-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670799790394,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8301a115b47ac1e468b486b485c87b9a","name":"ros-humble-moveit-ros","requires":[],"size":13041,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8745a0a39ba84ca4eed35f87c1456478553b4d6508aa2632f0e9851a4b9ffbe2"},"ros-humble-moveit-ros-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675849209219,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"25491f86cee7a4ec3793b7e8ad6b3d0f","name":"ros-humble-moveit-ros","requires":[],"size":13247,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a6808f60d217247a405cbd659453c7421c9cd7b9ec92b3d390dae4bb3689a07"},"ros-humble-rqt-bag-plugins-1.1.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670797962700,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f87c290960902f36f81671be0bfbdde","name":"ros-humble-rqt-bag-plugins","requires":[],"size":46550,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9f6911fd5b4fc97404094636d314f9230e1f6a420bf41c1e38fcbe9e9db163c"},"ros-humble-rqt-bag-plugins-1.1.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675848628181,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"93d6a1930d5182561872c55303028f32","name":"ros-humble-rqt-bag-plugins","requires":[],"size":45948,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59cf927585d0843578eb9c3756859c8e1f233d070f0223aa55b4a70c869d1ffa"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310hcd329d0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hcd329d0_2","timestamp":1670799618224,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"98f45f413d6b5dfd940ea19faf3d72ce","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":391493,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14694d607451ae4a73bc0232475d04c97f7feb2dcccdbc5f3010d0833d66bb85"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310hcd329d0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hcd329d0_3","timestamp":1675849061313,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"224a7c83aeb9e7c5bdc67ce3f7766c70","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":389878,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d10824a18e4660656f7a9f9de1b05ef393e99d6718b30face3df19348dd6e994"},"ros-humble-ros-base-0.10.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670798552789,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e00673bae0b7edba045379d6617fb4c2","name":"ros-humble-ros-base","requires":[],"size":12492,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fc368d8534f6c89f6f91a51a6810def4ee31ad0f637e27b9708757f33b39450"},"ros-humble-ros-base-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675849141293,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dc61d6a93e9ff966de8ecdbb0a2340eb","name":"ros-humble-ros-base","requires":[],"size":12764,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e579ba6ee7e2bc6ec819015d71061cdeb68701cbb597ecae453f19605eb24fe"},"ros-humble-moveit-setup-framework-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670799149570,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f9b540797b58d562ebea26b1c8961479","name":"ros-humble-moveit-setup-framework","requires":[],"size":211795,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae8c592a146867800a30b0792c873a8395efffdefa7158e0dabeb082761b4433"},"ros-humble-moveit-setup-framework-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675848543382,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"af33b26b039c817ff2cce12328e088b0","name":"ros-humble-moveit-setup-framework","requires":[],"size":213955,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74cddf49c1f8b82c66eb320d5f106e401ac01485e7d79f0fcf97efd5222e11a4"},"ros-humble-simulation-0.10.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670799867237,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b67749f8b7f0b97bd794ce2be0f2660f","name":"ros-humble-simulation","requires":[],"size":13485,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce0d9b21387ed53a8cce839569e096e689950a10fbd7007c5c6e62872636a6f5"},"ros-humble-simulation-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675849555694,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"06facc2ceb69820961f006a36e0b62f1","name":"ros-humble-simulation","requires":[],"size":13743,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82a39498c7c2c559ef2277f1dc64df63d8c56f977d06534a0c1d7408ccc23554"},"ros-humble-perception-0.10.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670798860908,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2be94b00d2f52b1675308d4a8fd970d8","name":"ros-humble-perception","requires":[],"size":13538,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1ba1530d18c7bd93836bb97d5632a9533a58703dcc810d4a883d28d3cf103fd"},"ros-humble-perception-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675849617056,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"217dea2f7429762fdcb23901f482873a","name":"ros-humble-perception","requires":[],"size":13786,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3659b846a0daed6682b1ffa6fb5a533bfd1d918521cff648d3a8f53b36d08b0e"},"ros-humble-moveit-planners-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670801989798,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6537a18b69b8a9c0ab76668188599195","name":"ros-humble-moveit-planners","requires":[],"size":12256,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e866858bccdef7ab0926d4c1cbc2bc01afcacfff9107cb4545ff250028580e2a"},"ros-humble-moveit-planners-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675849474879,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c0d12c0e262886e0022a654647fc0561","name":"ros-humble-moveit-planners","requires":[],"size":12484,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6233f002736a64c4e22eac8bc2de7d2c30117c7ec24d3c2bacb9f132df4fe214"},"ros-humble-turtlebot3-2.1.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-turtlebot3-bringup","ros-humble-turtlebot3-cartographer","ros-humble-turtlebot3-description","ros-humble-turtlebot3-example","ros-humble-turtlebot3-navigation2","ros-humble-turtlebot3-node","ros-humble-turtlebot3-teleop","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678332772679,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bcf787fb9fc86cb556e9f6e79d78d430","name":"ros-humble-turtlebot3","requires":[],"size":14086,"version":"2.1.5","binstar":{"package_id":"6396588fa2b7121008ee6edf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"026f615fb2a1a31ea54d85f30e022d7ce4cc8e7f3668021c55b4a66e72bfc95b"},"ros-humble-rqt-common-plugins-1.2.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670799720220,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"44675355e35c1d63a3fd0806c252b7b2","name":"ros-humble-rqt-common-plugins","requires":[],"size":13156,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eee393e3ed6940d66b56a2b4f2469bea2a343e1f79288a09f5a2d5bd26cbaf76"},"ros-humble-rqt-common-plugins-1.2.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675850917975,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de864e7089919db57bad92df045891a5","name":"ros-humble-rqt-common-plugins","requires":[],"size":13451,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0aaf30d1c04c8a7f5b80939cdfbbd35b308143ff44cd52cd9e8b60af6ae8f2bd"},"ros-humble-moveit-setup-controllers-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670800958335,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a474aae8613ebeecc7e4970f26428a2a","name":"ros-humble-moveit-setup-controllers","requires":[],"size":172699,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"347a5ad0afaf6a5391816d255a6f9b2c6a24c741c8c1f87d984608f20c6c376c"},"ros-humble-moveit-setup-controllers-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675850127344,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"02f5be297198dd58a711127a55b046ec","name":"ros-humble-moveit-setup-controllers","requires":[],"size":173124,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfa5c8c1ed259cacec7223bfd11e056e382c732c57bc8e06120bd6c56b06f29e"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670801294416,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"758054348557b40308e7705881bd4982","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":89926,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4050f7a8e385d595eee4cda231acaaee865d933ea3fe8789ae8f3882905e1270"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675850368039,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"accab2307d91ae84f8830b7781ad3d3c","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":90293,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"415a05cb89d65e35bd67643e6d798e28a74a6863a49bc2b3cd641743c5ca8017"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670800499966,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"265a6c052d9c4fe3e36277cb065302b1","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":74309,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e47849e3fb1b56ccafc4dffe6fb5272af1731cdbdef5f0590dd36b9106f2280"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675849794610,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ca0a83f5587a100ae2054c4ef6602e4e","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":75587,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb4ebbe8708612c02ebe44351a5c946d19f778fc15c9dbd6608a67d9f2aa66a5"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670801897217,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bca31d304469cc186d6f529612687d6f","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":357991,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72a09b30ba335063251e8146a91c36ffe13e7e7465dc911bac03b144bdc310d2"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675850811995,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"816cba7a02374360b3942a4f93987f1a","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":360570,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07a05c4f17e50e01fcdf34babdf093ddbd0382155c30e8aa44328885e3009999"},"ros-humble-desktop-0.10.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670800166065,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95d435402bf0b664a17d336dde3a15eb","name":"ros-humble-desktop","requires":[],"size":15106,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57affe883688200ba381c51d8fb73fd1686cb49a230f3d51d7b1509e3670920e"},"ros-humble-desktop-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675851568933,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"27ab380af8c22eb8c1fe2cf2d2efdb7d","name":"ros-humble-desktop","requires":[],"size":15327,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26f77833392e24845672874809529efefee3fc280fcb4d499882b86dfc389a2e"},"ros-humble-desktop-full-0.10.0-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h5aa156f_2","timestamp":1670802700715,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b6675f57cdd2dd85227c52cbe2e162d","name":"ros-humble-desktop-full","requires":[],"size":14899,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4670004597afabfde2e177d7e8f516c63f98a15e6f044afc373709015648e05"},"ros-humble-desktop-full-0.10.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1675851691731,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f21ccfbb2e67825144ce3ca7870698a","name":"ros-humble-desktop-full","requires":[],"size":15152,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6ef0346432cad57fca3d0186681f77d45500b423dfc0b1bb053505430a8a53d"},"ros-humble-moveit-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670802778000,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c5a2c136f9d79bf03eac8094c71a5ffb","name":"ros-humble-moveit","requires":[],"size":13272,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e17f5cbfdffeb870ba38cc856440e1d64a84d5bfd443fd52d9ce38372b6ada0"},"ros-humble-moveit-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675851623849,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"47215ebfd9b68f10807062f2408699a6","name":"ros-humble-moveit","requires":[],"size":13495,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f4321026bc6e347267aab46c12bf3f6eece4ec52d27f0cc866d8cfe9660bb28"},"ros-humble-moveit-setup-assistant-2.5.4-py310h5aa156f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_2","timestamp":1670802576267,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f404fd7d6acf6a7eac79e899f8c145ca","name":"ros-humble-moveit-setup-assistant","requires":[],"size":313277,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afecffc655ce34953d8ff18109b799f25845e39ed883773c51bc6772e010541f"},"ros-humble-moveit-setup-assistant-2.5.4-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h5aa156f_3","timestamp":1675851474720,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c9c9ea2711987a732ef93232e25d9f08","name":"ros-humble-moveit-setup-assistant","requires":[],"size":317167,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1ff9b2ad8f45e06886f039b8d592aa46de1a63cbeec599418e4ec27f4f59001"},"ros-humble-gazebo-ros-pkgs-3.7.0-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1677546998613,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5fed7f170e2207a85d8ca872514ab168","name":"ros-humble-gazebo-ros-pkgs","requires":[],"size":13509,"version":"3.7.0","binstar":{"package_id":"63967fd44f66fd116f9dea7d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8d4a1a456fa7d2531d8452413092aa46d5b46267e54abf4a62da88524c5893e"},"ros-humble-turtlebot3-gazebo-2.2.5-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-ros-pkgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1678330257389,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ec6987369e485b15376c6b9692566fd8","name":"ros-humble-turtlebot3-gazebo","requires":[],"size":238341,"version":"2.2.5","binstar":{"package_id":"6396923546bec18b890d6837","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a81e496c9a7fd5cac12dc0ccaa3cdf76f731bea77e8777771ad4bfff15e8d59"},"ros-noetic-eigenpy-2.8.1-h610bb81_20.tar.bz2":{"build_number":20,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["eigenpy 2.8.1*"],"build":"h610bb81_20","timestamp":1674167388409,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f6b3c85349e0fb58a655dc6dd5fe6a9a","name":"ros-noetic-eigenpy","requires":[],"size":3341,"version":"2.8.1","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e03d7147e0d44cbd443aef03e490dccce39374fea6da19ec0c9ffacc2a577e1"},"ros-noetic-eigenpy-3.1.0-h610bb81_21.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h610bb81_21","build_number":21,"depends":["eigenpy 3.1.0*"],"platform":"osx","timestamp":1706524613449,"md5":"c4f9ca5cd2b7b6091f2beca8df9433a2","name":"ros-noetic-eigenpy","requires":[],"size":3717,"version":"3.1.0","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fd9c880c8d9011cccc66bfd6c0bb1429c5f4952082df46c8e5cfe613135d315"},"ros-distro-mutex-0.4.0-noetic.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","ogre 1.10.12*","libpqxx 6.*"],"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":[],"build":"noetic","timestamp":1674167351372,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"64895f8010c97e44c0da27ba141ca751","name":"ros-distro-mutex","requires":[],"size":3551,"version":"0.4.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee541ebef46e516417de440eb7d0c62f056a4d9618a887098b96eaab5e75169f"},"ros-distro-mutex-0.5.0-noetic.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"noetic","build_number":4,"constrains":["gazebo 11.*","ogre 1.10.12*","libpqxx 7.8.*"],"depends":[],"license":"BSD-3-Clause","platform":"osx","timestamp":1706494856681,"md5":"6e98be3a4805c466077f43d752b3e487","name":"ros-distro-mutex","requires":[],"size":3906,"version":"0.5.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6bb6a96179e6f36ee6cc4aedebe9fd5f69a715b3c975101fdc0f459744e189d2"},"ros-noetic-ruckig-0.9.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674167698949,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e9f140defdf58671f0211b88281073c9","name":"ros-noetic-ruckig","requires":[],"size":74078,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d496f3cc8a467ef56c4a8dfd2e45e66b9c6ed3ad066b9973adb34525e240cb89"},"ros-noetic-ruckig-0.9.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706523643644,"md5":"aeae5188049c3e42794e753c9aa0793f","name":"ros-noetic-ruckig","requires":[],"size":75082,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e8c8a7be147aa56c1d242982dfe3366b4319f76f376ce8839aaddd93fc27164"},"ros-noetic-ompl-1.6.0-py39ha2205ef_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39ha2205ef_17","timestamp":1674168477919,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6b6f3cc13b8b4cf30c64843917d5fd1a","name":"ros-noetic-ompl","requires":[],"size":2133330,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71e93eda2dc4ffc61f38afd66d4e34f8fc6a0aba73643a12ebce7cf364a29381"},"ros-noetic-ompl-1.6.0-py311ha5db88f_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311ha5db88f_20","build_number":20,"depends":["__osx >=10.14","boost","eigen","flann >=1.9.2,<1.9.3.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524590878,"md5":"b68210f197d11422c61ef37cad992c73","name":"ros-noetic-ompl","requires":[],"size":2143323,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66389aa8bfeabe7d4d886253d3de8f6c32ecbc3b917572bdf201cf1bff88a903"},"ros-noetic-catkin-0.8.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","cmake","empy","gmock","gtest","libcxx >=14.0.6","nose","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","setuptools"],"build":"py39h00b06ca_17","timestamp":1674167594121,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49b8b79ba26612c0875cd404e479e58b","name":"ros-noetic-catkin","requires":[],"size":175290,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32464a9f9138398e1aab4fd86119b19bb31fe08a3d6aedd3eef0b4ec5e334821"},"ros-noetic-catkin-0.8.10-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","catkin_pkg","cmake","empy","gmock","gtest >=1.14.0,<1.14.1.0a0","libcxx >=15","nose","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","setuptools"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706523577935,"md5":"c078e7446cc811fb35328c0a72fc4567","name":"ros-noetic-catkin","requires":[],"size":181001,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffba6dee82afb34deb29f4c1a2ec7eb833de48d469713bd5eeff8551cf5db08e"},"ros-noetic-roslint-0.12.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168941145,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f0e481c0900139e73bebe65de195fd9c","name":"ros-noetic-roslint","requires":[],"size":252229,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6118946bff75033f3cafeb39777ae3608d755695c17a59fe9233d155d24b5464"},"ros-noetic-roslint-0.12.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525034947,"md5":"aba95b1671678a8d47fc85d035fbe78f","name":"ros-noetic-roslint","requires":[],"size":273949,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7633643f793af0e51e92e1276ee5dfb169f3d57c6138922ba010920f119662fe"},"ros-noetic-rosclean-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39h00b06ca_17","timestamp":1674168809591,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3dea4fd4105c3c81df132818cc300008","name":"ros-noetic-rosclean","requires":[],"size":22764,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7777f07e6bca132095a54e9a9c4e7607ceea3475fc5f1c4f69068bb71ce507a8"},"ros-noetic-rosclean-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524922698,"md5":"ad7905e62bcada8448a929ad333eedc0","name":"ros-noetic-rosclean","requires":[],"size":24263,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"753a407a62822c16b07a37e5bbdd1ab1aa9cb859e42cdaf31d5aa8df8d938f1b"},"ros-noetic-media-export-0.3.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169009234,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1c1e7758afd3eb95676e21f1d4f2e63d","name":"ros-noetic-media-export","requires":[],"size":10064,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0691e46cf94e9786f59e04696d7707915af69d53d213de875000d491c21a17f4"},"ros-noetic-media-export-0.3.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525087851,"md5":"242eaf736c1246ecd06e6131ec515ddb","name":"ros-noetic-media-export","requires":[],"size":10814,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4412ec648a56d4fe4f016899da09a4473c488e90b91bd71bd364fd007613b52d"},"ros-noetic-rosgraph-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","netifaces","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39h00b06ca_17","timestamp":1674168736844,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5788d48d9f7b7ab2b66d48af676edd76","name":"ros-noetic-rosgraph","requires":[],"size":85135,"version":"1.15.15","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4c9255078ef7a249dcda4bd1d77eaf095a7883cb2cbef18354b7f991c954dc9"},"ros-noetic-rosgraph-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","netifaces","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524853060,"md5":"b804fc6f05563123b5095dd516d15e74","name":"ros-noetic-rosgraph","requires":[],"size":91831,"version":"1.16.0","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62123fc607f2868fb16e298ef17c9004b5adefcb14b626725ad9fecd2447fd94"},"ros-noetic-urdf-parser-plugin-1.13.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","urdfdom_headers"],"build":"py39h00b06ca_17","timestamp":1674168875552,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9be956c309a993bd681a0c66ace551ef","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":11428,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"416a8c2e6f91f1a55c84dfdadbbd87c6dcb8786f444375cc392fa30c96fed53a"},"ros-noetic-urdf-parser-plugin-1.13.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","urdfdom_headers"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524979520,"md5":"01f860ce5b13f4870014ea34bbfaed2b","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":12181,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1c70c711e9a6522ea23eb38599a086aaa3a4c7d9323f33507a851efaf50d9a7"},"ros-noetic-ros-environment-1.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168909022,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"efab6140a04835d405f61a079f9f0c4a","name":"ros-noetic-ros-environment","requires":[],"size":16685,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"609aeefe69bfa1439baf9a59e653a577f01cff8c640bec209cb5be231db48c2c"},"ros-noetic-ros-environment-1.3.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525004292,"md5":"0db7b9a090c230aee07b5bbfe374b853","name":"ros-noetic-ros-environment","requires":[],"size":17215,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3adb8cea5b9ebbd36a7ed42dff917fe2788e26bada1b41e9f2a8bdc16573956b"},"ros-noetic-rosmake-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","rospkg"],"build":"py39h00b06ca_17","timestamp":1674169049608,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"030f68e4a6081efe9e5a115ee7e01f76","name":"ros-noetic-rosmake","requires":[],"size":64559,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ae1acd059375df9b41e79b0f9c4aa8b907a3e2bfcd40b46966c48e923b4227b"},"ros-noetic-rosmake-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525131467,"md5":"83656cd8ef6ccaf2e7a3096ca6aac96d","name":"ros-noetic-rosmake","requires":[],"size":69717,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f43a8a7d1229699c051004bdd94e8d055091bd525e96ec16405f4899176ca768"},"ros-noetic-genmsg-0.6.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","empy","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39h00b06ca_17","timestamp":1674168850130,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9773249092443dbe8fbab40f6e1b8da1","name":"ros-noetic-genmsg","requires":[],"size":62545,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b855720d96b19a9009849336e1a7c351c75e7c9815d3565e413e021b9b8c6fc2"},"ros-noetic-genmsg-0.6.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","empy","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524945409,"md5":"81e954d602ba716e62bdaa1625c4c7e8","name":"ros-noetic-genmsg","requires":[],"size":65641,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf9c0cdae40c4e0c3f4bab5ac19f86a9ffc22170d806f332efc206b96ac8eae9"},"ros-noetic-cpp-common-0.7.2-py39he31b616_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he31b616_17","timestamp":1674168777053,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4ea8f9b6a9f6943f11910cea6c03a676","name":"ros-noetic-cpp-common","requires":[],"size":30241,"version":"0.7.2","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8b43ebdf44ba5dba64fba3ce8b0ddc31cf5e17f196e88da4f883be97e661f6c"},"ros-noetic-cpp-common-0.7.3-py311he602911_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311he602911_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524880634,"md5":"a19b6e430ca125e347c1437a1e82bcba","name":"ros-noetic-cpp-common","requires":[],"size":30900,"version":"0.7.3","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0812d36306a6b6f75ff4857076953004ddccf7f1752c5b215cdc57149e97a8c9"},"ros-noetic-cmake-modules-0.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168968423,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b1e8db3e4635a2e63a24218dad72b303","name":"ros-noetic-cmake-modules","requires":[],"size":22637,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fcfc996955bd23469fcfdcb869c055063ad5bfd5907edd39d693a44732d2a19"},"ros-noetic-cmake-modules-0.5.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525060843,"md5":"72282ded45e8e282e7a9322a0c3f7742","name":"ros-noetic-cmake-modules","requires":[],"size":23405,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06f48526a412cc4e2de5be9263daefb245977efe96dc3be3f42904f8193facb4"},"ros-noetic-octomap-1.9.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39h00b06ca_17","timestamp":1674169044379,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"36063e44b1350f6cdd98ba7f4983d45c","name":"ros-noetic-octomap","requires":[],"size":315639,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a70722eb417615d10f0def3a4ea1aa26a25daac053a35d38b39f771246a62a85"},"ros-noetic-octomap-1.9.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524981688,"md5":"3a5f1f1a2d9e82df8c892ba40b30628e","name":"ros-noetic-octomap","requires":[],"size":318823,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbefbd9c25c1e47cfb89ebbdc81d4b5932b272230672d51dedabe6d9364252a0"},"ros-noetic-rosbag-migration-rule-1.0.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168726192,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4323454e13b237de2b493e7bd1ef9c21","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":10108,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0725179b0b94b59de2a9605341257f00eabf896b22aac94df5b71c24e6a06c08"},"ros-noetic-rosbag-migration-rule-1.0.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524826720,"md5":"8763a92aa985b3d5376326ad77a16a69","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":10855,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58bb923ff06e491120b696922e36d2c178df12178ac39ed93538d397488aedcc"},"ros-noetic-random-numbers-0.3.2-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h20fafc8_17","timestamp":1674168900576,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"16863f0c38aea7eadb460b92e1685732","name":"ros-noetic-random-numbers","requires":[],"size":29897,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"752645656a55c4a49332666bdcfe009cf7369cc7c846ee3bd092a0561673c958"},"ros-noetic-random-numbers-0.3.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525078389,"md5":"cf19114e063fdb350c63a54158bd4ba9","name":"ros-noetic-random-numbers","requires":[],"size":30622,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f47cf7561f72dca7fcb4ec69d8d918334c15256f0b6166a00b64a719862e60f"},"ros-noetic-moveit-resources-panda-description-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168785202,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"95bd7cb711de8c0353e21808c8c9ca79","name":"ros-noetic-moveit-resources-panda-description","requires":[],"size":3801493,"version":"0.8.2","binstar":{"package_id":"63c9c85f0273ee116afd3b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d62854a089e069857aa1cfa63cb320a91383f9bbb6253ca20a2f4ea4559f427c"},"ros-noetic-moveit-resources-panda-description-0.8.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706672062391,"md5":"accae0320656f58bc18c71a205f0f014","name":"ros-noetic-moveit-resources-panda-description","requires":[],"size":3808899,"version":"0.8.3","binstar":{"package_id":"63c9c85f0273ee116afd3b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b250ef97d5e9147ac350da832638f81a5b472e8027bc9e8595e912cb20603e91"},"ros-noetic-pybind11-catkin-2.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169100254,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d4ef29dec0c9a35ea2c690395adcf212","name":"ros-noetic-pybind11-catkin","requires":[],"size":122870,"version":"2.5.0","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"730116c62cb0322c5543d7d6fffa99da4932aab1d78eb3ebbc5c4b731c855d20"},"ros-noetic-pybind11-catkin-2.10.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525144181,"md5":"7d3f99eaf309ac7196cfbd393d49c2fa","name":"ros-noetic-pybind11-catkin","requires":[],"size":156905,"version":"2.10.3","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5a56aadfe9cbe175b1c5deb45e892f3f6b5931ec223c0ef173d6ce4bdacdf1d"},"ros-noetic-moveit-resources-fanuc-description-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169356899,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0068139dbcb0a5b45c22ab61f0487798","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":186518,"version":"0.8.2","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e1a5fb0bef64b21a6dfe4f94b2f962e0ef5a51663529c805299d31c3ceae849"},"ros-noetic-moveit-resources-fanuc-description-0.8.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524837915,"md5":"a404d7dff3dea672327da49e47797c01","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":187333,"version":"0.8.3","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0b561ada6440dabebb008410f64caea2d8fcf530606356d62785e85de103a5a"},"ros-noetic-gazebo-dev-2.9.2-py39h473d1b0_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gazebo >=11.12.0,<12.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","tbb >=2021.7.0"],"build":"py39h473d1b0_17","timestamp":1674169524302,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"58dadf5e235d7ded22e2260277c00962","name":"ros-noetic-gazebo-dev","requires":[],"size":13243,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faa0cd88bdf125af9bf14317f04e7e4c77fb4da5a96422f064abbafcba19c138"},"ros-noetic-gazebo-dev-2.9.2-py311h8a0f26d_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h8a0f26d_20","build_number":20,"depends":["__osx >=10.14","gazebo >=11.14.0,<12.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","tbb >=2021.11.0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525075819,"md5":"dccf7f1850bf12cbdbec14032c6d770e","name":"ros-noetic-gazebo-dev","requires":[],"size":14528,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e99477bc803a2b55a87dfb694e3b97b37ebf98223360523007727f1f0147f554"},"ros-noetic-smclib-1.8.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169306522,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a6b4a3c9e561d3e4a8e89da917778015","name":"ros-noetic-smclib","requires":[],"size":20986,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8402522282f4bacaf6d3c6238f67187e93944a4aa4d389a6335b3f6f89147b0b"},"ros-noetic-smclib-1.8.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706524904371,"md5":"bf448699c67d6255c64fcb3bb723f955","name":"ros-noetic-smclib","requires":[],"size":21797,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"253b11bbcfca79d9b663aefa95e1ee1b0e8cf4b2e3aff3667132b6f79b0d4cd1"},"ros-noetic-moveit-resources-pr2-description-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169244078,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8193ec75b2d94adb0d205968eba5027a","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25897201,"version":"0.8.2","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"783d23b069ae258fca85d1dad61b3a84eb75e69d8ef4be5952f44dfc490df00d"},"ros-noetic-moveit-resources-pr2-description-0.8.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525206761,"md5":"f85f39bad69700295a53a691dbced383","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25846632,"version":"0.8.3","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed254a49eeb55ebedeff67d8744cd2e1bf576d573b396cf6ccfe345fbc1ce8ab"},"ros-noetic-smach-2.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169981469,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e410d786c9e0a023069f8011ad659dde","name":"ros-noetic-smach","requires":[],"size":67032,"version":"2.5.0","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02c8d978eec3e9e6369ad05f23a444f564be8fe4b73d686009a0d098d077cea0"},"ros-noetic-smach-2.5.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525254997,"md5":"438ba2ad338b213b3321567a2e45019b","name":"ros-noetic-smach","requires":[],"size":71903,"version":"2.5.2","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67b244fcaddec328abd07c0e9b0705b712a42a917158d745405d1280c53df94b"},"ros-noetic-libfranka-0.9.2-py39ha020b8a_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39ha020b8a_17","timestamp":1674169555286,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f8f88c70da5ae049cb4a6b5dc11cfe55","name":"ros-noetic-libfranka","requires":[],"size":221478,"version":"0.9.2","binstar":{"package_id":"63c9c8afcd65eb0e145c06a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7604364dd8f06c640ee6d6d6b15fd92a7be82fa6db7a65492e5df909268e1795"},"ros-noetic-gl-dependency-1.1.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt","pyqt-builder","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169306900,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea98c9bd614c0d3522bd4ec65e0eda3e","name":"ros-noetic-gl-dependency","requires":[],"size":10429,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d394fe05963e0c10929aecfbd5b933a169ab37db60f01f5c309b9ba8b22c1fd"},"ros-noetic-gl-dependency-1.1.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","pyqt","pyqt-builder","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525321573,"md5":"0f8eae7fb9fd43b13af66ce09045bf7d","name":"ros-noetic-gl-dependency","requires":[],"size":11194,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42a5c58801a0a5b7d7488e82fdc1b1c767a08b218ce8fb5388e64ba3b53b6e72"},"ros-noetic-openslam-gmapping-0.2.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168897102,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4448a86de369cb4ea853f9453969b302","name":"ros-noetic-openslam-gmapping","requires":[],"size":212426,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7c205c13769587854e481fbc31e0a063d06adcaa415d60efeedc367dd8db571"},"ros-noetic-openslam-gmapping-0.2.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525198842,"md5":"f9c32086a0c4845fb127b83e51738656","name":"ros-noetic-openslam-gmapping","requires":[],"size":212132,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ad7ab6e775464a01b82020942428d99bc08d5b770f7e2bed739a915a636417e"},"ros-noetic-rosboost-cfg-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168727054,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3812e6d5a88255e3daccffd02048af5f","name":"ros-noetic-rosboost-cfg","requires":[],"size":27832,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2b11ef8cab67aff55e09671ede7e04d2f4a1326462ee4ead8144accc7379176"},"ros-noetic-rosboost-cfg-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525085656,"md5":"794117d4337185928e6e704bb4e67048","name":"ros-noetic-rosboost-cfg","requires":[],"size":29983,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fc195c96f0bce9435df33c96b3abc0f1f6e8ac57ef517ef6f806f18a59a1b0f"},"ros-noetic-qwt-dependency-1.1.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674168784791,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f9c98660d7571890603091143be318fd","name":"ros-noetic-qwt-dependency","requires":[],"size":10100,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1d610f4f1e439552061ba5db605b2c6a7d317faf8ffd14c1ae7dd291a675dfd"},"ros-noetic-qwt-dependency-1.1.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525018563,"md5":"a10d574c7bb4b4fd8a5ec32b8807e51c","name":"ros-noetic-qwt-dependency","requires":[],"size":10850,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ccd696e74cac544e751e5bfe70aebe0a925bb5e3995b13dc086ee32cb834b2f"},"ros-noetic-code-coverage-0.4.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","coverage","lcov","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674169596932,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f546ce4d3b854795200d4af000cfba45","name":"ros-noetic-code-coverage","requires":[],"size":13303,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4335f78e249458b8e7ea0f74c39eb818ff563cf0cff90818a951ecfea9e88533"},"ros-noetic-code-coverage-0.4.4-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","coverage","lcov","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526225297,"md5":"44eb6c16f2d279b88079dd6dddbeb1d1","name":"ros-noetic-code-coverage","requires":[],"size":14007,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4553b2f95a426be4e3c501655dbb06a94c3437057fa2ca597e504c54a48752a"},"ros-noetic-libg2o-2020.5.3-py39h84fb5ec_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","suitesparse >=5.10.1,<6.0a0","xorg-libx11","xorg-libxext"],"build":"py39h84fb5ec_17","timestamp":1674170871230,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"177e8d1fb75372d53582fec7598752d8","name":"ros-noetic-libg2o","requires":[],"size":1703835,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"194c6cd4923bfcb3e881558fd2e1542a6787a98850a4e3fc842ea73305fe76e3"},"ros-noetic-libg2o-2020.5.3-py311hcdabef1_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hcdabef1_20","build_number":20,"depends":["__osx >=10.14","boost","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","suitesparse >=5.10.1,<6.0a0","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526159422,"md5":"9f0ca929e22b81bcb2b1fc56eabdf1cc","name":"ros-noetic-libg2o","requires":[],"size":1638979,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e633040c4cc95fe195a72031d10382d61eda7d9a5b4a9648964b4a2b21bdb81"},"ros-noetic-jackal-simulator-0.4.0-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-gazebo"],"build":"py39h5cf4051_3","timestamp":1674456029118,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3ba6a0786c7aa8e91761593188cbe8b9","name":"ros-noetic-jackal-simulator","requires":[],"size":11219,"version":"0.4.0","binstar":{"package_id":"63c9cb4668b198bb95958d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d0171dce018bb43f0e13a9f107c3cd5b3b805101e21d02c144ffc6e755253a1"},"ros-noetic-genpy-0.6.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171238140,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"21990749aa4e872516e4a5d14aade667","name":"ros-noetic-genpy","requires":[],"size":94677,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a99e91d324d8d8687acd89d8b215e18fea611aa057b200769fa60ce65c03d5d"},"ros-noetic-genpy-0.6.15-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526556148,"md5":"c16a87c1af004ff47b000d8425a7d3d6","name":"ros-noetic-genpy","requires":[],"size":100381,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0b497ae4f1c77281d8822ac967904a25523686699d12d320e84b955d927a5ab"},"ros-noetic-geneus-3.0.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171426929,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b56776057f865de205c87b044078793f","name":"ros-noetic-geneus","requires":[],"size":52707,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7919e2e474bc0ccf12ac94a769a824d7fda45001b4aa134b177f1067091d9f1c"},"ros-noetic-geneus-3.0.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526726341,"md5":"5f42187b830b2a51ebd98ba1a6571c4c","name":"ros-noetic-geneus","requires":[],"size":57187,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c4b62aba16658b75086947d8504e5bc6db6cdba6c9c253654a13676ec956def"},"ros-noetic-rostime-0.7.2-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common"],"build":"py39h76d4aab_17","timestamp":1674171162385,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"086bcb9d57da379879d0a83bfa598ea5","name":"ros-noetic-rostime","requires":[],"size":45864,"version":"0.7.2","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4b422bede8efe713239682b423f52a6c9880c2d2540ba0c0be4a772a40be202"},"ros-noetic-rostime-0.7.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526490315,"md5":"8f45e7379db29d3827827a9181ca587f","name":"ros-noetic-rostime","requires":[],"size":48688,"version":"0.7.3","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"640df27ef9ca832a422eec8a756d40c33215f11db4e3ce98d3c8d3514622e47d"},"ros-noetic-gennodejs-2.0.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171295231,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a1a37108ba14574d129420a3642b1c03","name":"ros-noetic-gennodejs","requires":[],"size":47975,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b66c224c0a88a93071620663d30400c3cf2b991cea50c60666d3ff85bf71f3e"},"ros-noetic-gennodejs-2.0.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526613693,"md5":"b486b4f463ae4aaa287ca825aed27d53","name":"ros-noetic-gennodejs","requires":[],"size":52680,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0392160ffad60b8165b1825779d60e14d2dd283d18c02be42e69fb81bef50571"},"ros-noetic-genlisp-0.4.18-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171359249,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"caf6cc43272f2580c86794a6bf2d640e","name":"ros-noetic-genlisp","requires":[],"size":48286,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"961c3e03dab8df402b9c390ab0648e328cabf0b0b2a47ddc868720fed5b6e8d3"},"ros-noetic-genlisp-0.4.18-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526670354,"md5":"6b8edbe691af5806809e7d5adc65f8bc","name":"ros-noetic-genlisp","requires":[],"size":51267,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe5a5e5338454fe9f2fca46690b40abaaeed83342c396fbc7b97ced009e7c49f"},"ros-noetic-rospack-2.6.2-py39h556cec8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h556cec8_17","timestamp":1674171205151,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"60a850624ef8e2cb10caa2065c5c9930","name":"ros-noetic-rospack","requires":[],"size":111143,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"715121ec4646c1d7c13618cc1b6850bc67b116701fd2bdf74ac4443b325f6aaa"},"ros-noetic-rospack-2.6.2-py39h556cec8_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h556cec8_18","timestamp":1681946516165,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"256e3934fe2e662de7bc331ca5c3b313","name":"ros-noetic-rospack","requires":[],"size":113132,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0cb189b3234aaf38bd6076b3258bdad6c17203a972aaf71de59a3d6391fe2a8"},"ros-noetic-rospack-2.6.2-py39h556cec8_19.tar.bz2":{"build_number":19,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h556cec8_19","timestamp":1682560910628,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b1cb1511286c349c980c5454ecd86b17","name":"ros-noetic-rospack","requires":[],"size":112749,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d817439a6f11b465017d40f60163247277bfb64d842e72ad495e757e2a010d9"},"ros-noetic-rospack-2.6.2-py311h0f7ea6c_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h0f7ea6c_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","catkin_pkg","gtest >=1.14.0,<1.14.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","pkg-config","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526577712,"md5":"1de6aca2ac1adf3525233f4545480235","name":"ros-noetic-rospack","requires":[],"size":118924,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49b6c4cbd28a7032dba62e6707e4d3e17c22460743b3119e4a019d4162292269"},"ros-noetic-rosparam-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39h00b06ca_17","timestamp":1674171326610,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49c1e2acb6eb93fbb4af29c963dd6969","name":"ros-noetic-rosparam","requires":[],"size":33134,"version":"1.15.15","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7df64a5a2a1026c9a04b0647b4b9eff6fa0edc1ebebc31342a3de82249034c19"},"ros-noetic-rosparam-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526734134,"md5":"5686aef95a36e876e8519c159853576d","name":"ros-noetic-rosparam","requires":[],"size":35115,"version":"1.16.0","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c571221ccade8121f98aba09c31b501c33cd7cfcee60a4af4bcd37f9d1ea7a43"},"ros-noetic-rosmaster-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","defusedxml","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39h00b06ca_17","timestamp":1674171384155,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17fb9db30a874c80ae000c7d00842e46","name":"ros-noetic-rosmaster","requires":[],"size":75204,"version":"1.15.15","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a2e6702e883e1550a316b3bcda8ac4a5420db05cd8697174fc581e0d8ad7935"},"ros-noetic-rosmaster-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","defusedxml","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526821445,"md5":"3a1e1ccd9a7f9a0e52c1871c21d62ba4","name":"ros-noetic-rosmaster","requires":[],"size":79382,"version":"1.16.0","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b2637ba6b18a2be4ca94535316d50734ed80546f888ad1e5f19fa608be75613"},"ros-noetic-roslang-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171264532,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7c74ce495efecbced710e5aa44bc5eda","name":"ros-noetic-roslang","requires":[],"size":10967,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f10d4c2ed499589f7b8d2086b0ff38adb30bd91c77eb1d20abd0660a1c5818c"},"ros-noetic-roslang-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526647293,"md5":"d13d2e699ead9cb3f30716bed4845fc4","name":"ros-noetic-roslang","requires":[],"size":11714,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4898289aed57a598018bacc0293945e9660d68cc303f16ae028cd4e25aaa463f"},"ros-noetic-gencpp-0.7.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h00b06ca_17","timestamp":1674171097151,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d0ecfc4134b1a282d6ed0966447c9770","name":"ros-noetic-gencpp","requires":[],"size":25000,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88a41fa0e2819a3a8c01dfde42587d137480e31155495be4e73052167dc257bc"},"ros-noetic-gencpp-0.7.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526456927,"md5":"cf8a06c49a85d0a1bc48762cd81aa823","name":"ros-noetic-gencpp","requires":[],"size":26050,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efdf68f335458d52a76471e9c1a1cefcd0dbda513393320f37904920ded51d14"},"ros-noetic-rosdoc-lite-0.2.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","catkin_pkg","doxygen","graphviz","kitchen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","rospkg","sphinx"],"build":"py39h00b06ca_17","timestamp":1674171862132,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e7a53e86c3554903369457a53aca7296","name":"ros-noetic-rosdoc-lite","requires":[],"size":86405,"version":"0.2.10","binstar":{"package_id":"63c9cd30dbdf733521f07073","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0055aa5d6b348334267f7c1d9ee609dbfd4ba68ee339ed98b7ab91b3947c4700"},"ros-noetic-eigen-stl-containers-0.1.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674171247495,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"74ccde6d489ad3a14f85b51af3cd86f3","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12217,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94f5ee6e14a8a12e0837def53bd02ab42ee4acd0078a212168971ac36446cfff"},"ros-noetic-eigen-stl-containers-0.1.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526996445,"md5":"dd3437ab30dc945b0a67995f5f23326a","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12967,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45b49f491c14ec36f13d69a60f8830bb8c696babdfcc8e16732d5cc07f27829a"},"ros-noetic-xmlrpcpp-1.15.15-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h76d4aab_17","timestamp":1674172454405,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ecfa29885addde4b11b6fff13e623c57","name":"ros-noetic-xmlrpcpp","requires":[],"size":69366,"version":"1.15.15","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"396ae1223bfa526c668d88c5cfe43728a52667cf08c7d8f27f6d4cd9467e3628"},"ros-noetic-xmlrpcpp-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527571872,"md5":"aa9671fb3861811d8dd1c600f496b9e9","name":"ros-noetic-xmlrpcpp","requires":[],"size":70680,"version":"1.16.0","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed8a9f90caf6bfce7b275138dd0ac2bbdbac9d1f120451bc8c8af64a6beccadc"},"ros-noetic-roscpp-traits-0.7.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h00b06ca_17","timestamp":1674172137191,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"309d4fde9ddaf641cfe62ae553d421cb","name":"ros-noetic-roscpp-traits","requires":[],"size":16091,"version":"0.7.2","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3a52b07690898d714cde6fb2e6eb5f76b7d4886e7df1d8334ded7b1dfacaa19"},"ros-noetic-roscpp-traits-0.7.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527258628,"md5":"149576de15bc7b9919569860236a746c","name":"ros-noetic-roscpp-traits","requires":[],"size":16901,"version":"0.7.3","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b099fea54ec28f38c4d6fb4834667657375fd51bf6532d27471eec67629b02a"},"ros-noetic-message-generation-0.4.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy"],"build":"py39h00b06ca_17","timestamp":1674172205467,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3ea7f12ded586b2c441de35edf31f816","name":"ros-noetic-message-generation","requires":[],"size":10411,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b5fed0284b4874d475e3906ec3ccce39f072f9ad7b375e6c062efd5d274f60e"},"ros-noetic-message-generation-0.4.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527321913,"md5":"9e3c3630e1a46c222bc883c9fa99434f","name":"ros-noetic-message-generation","requires":[],"size":11161,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5fcc140684e2cded743241278524fc5b5af1affaa6766c3bd1bd0a668e3a93c"},"ros-noetic-rosbash-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"build":"py39h00b06ca_17","timestamp":1674172537457,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c6a25cd625791ab22f333c25a1ae81b4","name":"ros-noetic-rosbash","requires":[],"size":26609,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58d1f155516e85a573fa169b963d45dc48b7fe0e1e342c1648fd0b5581e6011a"},"ros-noetic-rosbash-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527660178,"md5":"0e3c16975eb5ec8e77d7598cebaff31f","name":"ros-noetic-rosbash","requires":[],"size":27440,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07b9ea64253b758ddc5525314fd797631ca91595a9c0a18e00e886bd64fd5cea"},"ros-noetic-roslib-1.15.8-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"build":"py39h76d4aab_17","timestamp":1674172323731,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c9e96d9e048bb1692b3f62bfe5e2fd64","name":"ros-noetic-roslib","requires":[],"size":149406,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1142ac95bd4681cde910e4f6dc865dc18a8ab2bbd53287824b9a467e7ad2b2b1"},"ros-noetic-roslib-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527436345,"md5":"64e6005e709edaf0448dae21a826302e","name":"ros-noetic-roslib","requires":[],"size":157902,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c33bd0e67a0d6fd2f173f309e2c05e3c09b82c30985df5ca40a160d6f85207c"},"ros-noetic-rosunit-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39h00b06ca_17","timestamp":1674173552203,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c975ddcbc5a45ccc2cb36b8fa3f8901a","name":"ros-noetic-rosunit","requires":[],"size":92173,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d73ee4461389e11c7bfafaa606add60d19b96d75746b87284232258fb13f4cc"},"ros-noetic-rosunit-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528017899,"md5":"1047e6b6088d0325ebf870479cefba14","name":"ros-noetic-rosunit","requires":[],"size":97956,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6bddf6ef80ca3ded81e086e0f023c5883a9ae1a0851d88cd7a3f8689365590da"},"ros-noetic-roscpp-serialization-0.7.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39h00b06ca_17","timestamp":1674173472862,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"690d95bc871b3980c5a45084b81e4c98","name":"ros-noetic-roscpp-serialization","requires":[],"size":17975,"version":"0.7.2","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04c5a6813302a435e50471abd2d1f5757c1bb448c0d4e6e649be93e3cd399a08"},"ros-noetic-roscpp-serialization-0.7.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706527943255,"md5":"12bdcd2ce93fccdcf2e0c3a69b64c0ba","name":"ros-noetic-roscpp-serialization","requires":[],"size":19086,"version":"0.7.3","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cd26e88d613e38db5fb33878e01db8a0f64290ce6089a4603c87c51640bfade"},"ros-noetic-roscreate-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39h00b06ca_17","timestamp":1674173619391,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3cfdc54460cd63a6f10d292d5cc94d49","name":"ros-noetic-roscreate","requires":[],"size":22039,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96742af2ea22ce5857ce0470f2a3512fc0694620b3f1cf2a11314bca347ef540"},"ros-noetic-roscreate-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528086569,"md5":"68f2548d186fa5d5cab1b4efe9e74eb7","name":"ros-noetic-roscreate","requires":[],"size":23407,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d3dbd7d5a32098ec4e1e0c6aea45007735082efa832e9c2d872eb5a1a082110"},"ros-noetic-roscpp-core-0.7.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39h00b06ca_17","timestamp":1674174112176,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"42704ba7ede3c464f5d81690cc126ada","name":"ros-noetic-roscpp-core","requires":[],"size":7212,"version":"0.7.2","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62e15b8c58e4fb2e2fbe15b5a54694cf65bf596e98ce2351ea26d5962991b4ed"},"ros-noetic-roscpp-core-0.7.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528611296,"md5":"1bd0dbc2bdfa78f594231abc703f8fc0","name":"ros-noetic-roscpp-core","requires":[],"size":8044,"version":"0.7.3","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5325302ac38132707321757d7e9af26c62a85eaeee7f5d6d1f4013013bac867"},"ros-noetic-roslz4-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","lz4","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674173963070,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"78d65bf4381f2758a0f5f6feb71f66d0","name":"ros-noetic-roslz4","requires":[],"size":22947,"version":"1.15.15","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f9c979bf7f90d387316812c206b58420031ba3688eff6d5ff6fe9f1f7eee391"},"ros-noetic-roslz4-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","lz4","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528446869,"md5":"85a65bda3413f9ce370ebc87918d1a78","name":"ros-noetic-roslz4","requires":[],"size":23658,"version":"1.16.0","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"834f1b80d94e312e1c355b3080ef384efb9c3515fff2bec81b477f76f2e89048"},"ros-noetic-message-runtime-0.4.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-genpy","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39h00b06ca_17","timestamp":1674173864619,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d874942d1db9237010becd03a163b6d1","name":"ros-noetic-message-runtime","requires":[],"size":10509,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25be98b3ca74cddeec53ff9cac3aaad868c3555a6b1dc39fbb006fd2f0a82252"},"ros-noetic-message-runtime-0.4.13-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-genpy","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528321314,"md5":"7bee64848c2d4792de4885f5415404ac","name":"ros-noetic-message-runtime","requires":[],"size":11299,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c0377b042be8b01d1c012a2d58cc782c0675bbe9e121bb4814a8a4d2a354617"},"ros-noetic-angles-1.9.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674174042230,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3a0aa77889d2a65853c681a034038a18","name":"ros-noetic-angles","requires":[],"size":21148,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a4041852b3dfb1221beab0ab1b1fb08c7d12b3fdacd8248ca692ae5f8a7e19f"},"ros-noetic-angles-1.9.13-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528530173,"md5":"96c5993b75e6b6dd84faad9491053570","name":"ros-noetic-angles","requires":[],"size":22032,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57adddf0e141621464133a30036a5f93b11cf3a5902be8cc724575b950ab40a6"},"ros-noetic-rosbuild-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-message-generation","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674174673512,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"627f5fd9d05ef58f3524807599eee837","name":"ros-noetic-rosbuild","requires":[],"size":35538,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbb0591b9688395217d0275e4deec837ae433d06797cb4502ed7a45164a2ad44"},"ros-noetic-rosbuild-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-message-generation","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528971094,"md5":"4d39a4f3f47269e6d2e698a28401e7e3","name":"ros-noetic-rosbuild","requires":[],"size":36230,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11f646370c68a9f57462d823ca5ecdabb3f64e80d24fae3b7c4835767cf64386"},"ros-noetic-rosserial-msgs-0.9.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674174824070,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7d29c50754b5ae23396876b6d80248f1","name":"ros-noetic-rosserial-msgs","requires":[],"size":39618,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5fd2e6f2a48aa841ae7eb75d4e69a4f27e3d5c96007953fd7aa718c8623d160"},"ros-noetic-rosserial-msgs-0.9.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529152068,"md5":"46516f7a4c744d11d73e31c28af2c987","name":"ros-noetic-rosserial-msgs","requires":[],"size":40637,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feea98a44ae638bd9a5ca68a1ff7daf993975e1c10eb35850b4d24f0ad394d89"},"ros-noetic-std-msgs-0.5.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674174604568,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ebf82e4e1b15d1224d1416bff135ef9f","name":"ros-noetic-std-msgs","requires":[],"size":98264,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ccca4f4bfc39038422b79240cd82b1bef0b263736a695c4079bbfde11ff6f76"},"ros-noetic-std-msgs-0.5.13-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706528882085,"md5":"79c1086e22a087c54c2dc9f51c641570","name":"ros-noetic-std-msgs","requires":[],"size":98738,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1747c7f13d468c0b029c126e1c9c5f497ddf28b7bfa590040afd831e249d6718"},"ros-noetic-std-srvs-1.11.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674174748655,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fd93a0715dae5f32985662c711128b8a","name":"ros-noetic-std-srvs","requires":[],"size":33628,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e244c990b35457dd7453bb7a9eef576b0238181ba493a94de30a69344d71f2eb"},"ros-noetic-std-srvs-1.11.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529059219,"md5":"7c810ddffc4938b92827134ae88578fd","name":"ros-noetic-std-srvs","requires":[],"size":34249,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebc98e8f0c696043a013bc74841b8e3896ece1b77845c370ad65c0730bfc98fb"},"ros-noetic-plotjuggler-msgs-0.2.1-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_18","timestamp":1681695691577,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dd556aeffabfdd5d7a2b9428b016265d","name":"ros-noetic-plotjuggler-msgs","requires":[],"size":42427,"version":"0.2.1","binstar":{"package_id":"63c9d24eb23346582ca04240","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad338c3aafc47cb26c0911a5205b8d2f72bff479e8a5677da5ad7b7bec98f553"},"ros-noetic-rosbridge-msgs-0.11.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175487606,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"71a86eb4156bd43cf9df5a0df300a302","name":"ros-noetic-rosbridge-msgs","requires":[],"size":28471,"version":"0.11.16","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d697e3739f4b97aae4402f2c6072f3ad1bee124ca6448546d784b10aa5bc226e"},"ros-noetic-rosbridge-msgs-0.11.17-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529491929,"md5":"9a338ca9de6e3e129111e528b79ae720","name":"ros-noetic-rosbridge-msgs","requires":[],"size":29517,"version":"0.11.17","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"713ab450a8f6c60af05f30f57006b1a8712997d9eb99962df6ab24d48b0e227e"},"ros-noetic-jackal-msgs-0.8.5-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h5cf4051_3","timestamp":1674175722639,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c2142b2176300f5c6b9a063be4580f3a","name":"ros-noetic-jackal-msgs","requires":[],"size":38634,"version":"0.8.5","binstar":{"package_id":"63c9d2abdbdf733521f38072","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"056e8a9a988564cb9d7f0ffa51f639ef10ff8097df5b7598f0f696c1b2d3258e"},"ros-noetic-turtlebot3-msgs-1.0.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175562996,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b17130318c65d32b284cab921a7271af","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":37888,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c89f80914540a86afeb3b7164117a7a194d81ad36ed7618b70ce7dffefb5ed4"},"ros-noetic-turtlebot3-msgs-1.0.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529399990,"md5":"ae02a67bdc8a34bcccf2c977b279afbc","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":38656,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd980f6fcc94f592cfbdda230460879831656f00a97eaa9dece81a184c7ef43d"},"ros-noetic-nmea-msgs-1.1.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175647358,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6044347ddd642f0bec2d7ba55b184a42","name":"ros-noetic-nmea-msgs","requires":[],"size":56440,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"697684e19dd1ac6362c097bb24234b1cc0e922f5e8c4b69051317a40daeafdeb"},"ros-noetic-nmea-msgs-1.1.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529594199,"md5":"dc8346b79cfd417fcdc966c41d87a5ef","name":"ros-noetic-nmea-msgs","requires":[],"size":57309,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a742f4a332a63a1ff443b78f717104390e0b772678ff3b54dbb325484a4455b"},"ros-noetic-diagnostic-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175792132,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b6f6c4f18b99d9f8f39f788410d03b9b","name":"ros-noetic-diagnostic-msgs","requires":[],"size":52360,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e595637ad0fc7c18adc5c9227d11d6b82d91ed22c8e6b9303f0ed468338a5dff"},"ros-noetic-diagnostic-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529841236,"md5":"62061a8dfc90e131eb3d01591ad3ecc6","name":"ros-noetic-diagnostic-msgs","requires":[],"size":53253,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ca32f78871d487db8f4f54c9d5ebb6cf3630a36fc04ee59eca74c54aef6bb0e"},"ros-noetic-actionlib-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175705878,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0fc8638566d2c6cb1e82a10f103f5baf","name":"ros-noetic-actionlib-msgs","requires":[],"size":44509,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd5e2992cd27c7b8db4da9e8b51a32d62d6ba1fef22c2c20f79f511dc079a34f"},"ros-noetic-actionlib-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529734774,"md5":"ac57b452c64c9d9b49d5029ffdcff040","name":"ros-noetic-actionlib-msgs","requires":[],"size":45515,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e18d17134d868a0761093aebe89b642bd65c1848f843663072a1e6a05fffc40"},"ros-noetic-geometry-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175616669,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"dc83c06d3295be72c31e187211b2c586","name":"ros-noetic-geometry-msgs","requires":[],"size":106654,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3176cf7ee5325294aa517d1ad057f9b72c6a8dfe6086dd895d3c5019b721ddd2"},"ros-noetic-geometry-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529629817,"md5":"0a4ba51403b9dcf8cdf18093bfcae9ff","name":"ros-noetic-geometry-msgs","requires":[],"size":116475,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10e3b782fe892280eaf4dd2c176634a3e36ad37e6d17fbd940548adc1ff722ca"},"ros-noetic-rosconsole-1.14.3-py39ha77f61d_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","apr","boost-cpp","libcxx >=14.0.6","log4cxx >=0.11.0,<0.11.1.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"build":"py39ha77f61d_17","timestamp":1674175522561,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f16000ba0250ec8aba8d68d7460dc35e","name":"ros-noetic-rosconsole","requires":[],"size":177513,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e76f1c74987f250fd30f0e69c0803b2c9fae3a5f0eda4c31bb0f3bed5026aca8"},"ros-noetic-rosconsole-1.14.3-py311hfaa79b5_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hfaa79b5_20","build_number":20,"depends":["__osx >=10.14","apr","boost-cpp","libcxx >=15","log4cxx >=1.1.0,<1.1.1.0a0","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529521318,"md5":"8dedfda45f6257adbd282f73f3b4c50a","name":"ros-noetic-rosconsole","requires":[],"size":177005,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7353068c9ca5ee31a13dc90e44c9a455aff437a64b1bd23d95d0635d8c77f21e"},"ros-noetic-rosgraph-msgs-1.11.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674175393367,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ee2d391f22f3f5de156f6ae82bad1ed2","name":"ros-noetic-rosgraph-msgs","requires":[],"size":42912,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97877d9ecb6b59ff39903f6a58c3f1eb85b60e1b2b2a6c4295bf2c106fcc2b08"},"ros-noetic-rosgraph-msgs-1.11.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529400954,"md5":"3230857c861b961f04c9c97b4077053d","name":"ros-noetic-rosgraph-msgs","requires":[],"size":44439,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd0aaa93e3b50257ed32dbd12a932f083b758de16704c7903f8e04e200509037"},"ros-noetic-mk-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"build":"py39h00b06ca_17","timestamp":1674176123340,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"130bf8afe746d050405504cdd7821407","name":"ros-noetic-mk","requires":[],"size":16698,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1139d9a0012bd4100cafde661f476e91220dfe8f6aeb369d0e0042953d2af38"},"ros-noetic-mk-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529658691,"md5":"b066c0cecfdf234f2b05203db8ba8427","name":"ros-noetic-mk","requires":[],"size":17406,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7b2475c8120ef7b1cac0b764c0cffc1eeccc88a4d2c23af2877aa1da8b4e447"},"ros-noetic-bond-1.8.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176011600,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c07f36abc15441eac79786030a63f3b8","name":"ros-noetic-bond","requires":[],"size":30531,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b712e7fbe5645531b1859107deb3da9bc7d6299ee26ebfbdc9a2cf7746cb16a3"},"ros-noetic-bond-1.8.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529562913,"md5":"6387ed7f95b42253d46391cd1ecc801c","name":"ros-noetic-bond","requires":[],"size":31524,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f30326d29ef906062e0da6fdbc36ffee69f51b4023c75893060c30eb6ae2f0f4"},"ros-noetic-smach-msgs-2.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176317130,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b0e2d4aa8bc8de6efd0ee28b2ded6af8","name":"ros-noetic-smach-msgs","requires":[],"size":37906,"version":"2.5.0","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9cb9773484d67b6c40fca2e410d76254914ea673e0d9358ee83228620228733f"},"ros-noetic-smach-msgs-2.5.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529854637,"md5":"6cd8544dbc3f4ffd6ab4f399136374ac","name":"ros-noetic-smach-msgs","requires":[],"size":39009,"version":"2.5.2","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9635ada9158e328e2a9d8e4ac5473ff8ddd64b0b09e51bcbbd461ccf3bf60065"},"ros-noetic-uuid-msgs-1.0.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176214836,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"68cb7000b9c7889c6b856d7334642e78","name":"ros-noetic-uuid-msgs","requires":[],"size":21428,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9a1b347b246a15308064ab50ae3e4676cd4177d3b56350c8dcde0897d5cfb21"},"ros-noetic-uuid-msgs-1.0.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529755257,"md5":"816ee3657b034fea4552195a88d1d3a2","name":"ros-noetic-uuid-msgs","requires":[],"size":22389,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79f4b79e6ee7e6cd953995bea1f359defe1a07d7119ea84c3175b9ef1cd4a942"},"ros-noetic-radar-msgs-0.1.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39h00b06ca_17","timestamp":1674177221810,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a7195f0985ee24b1e0d271a950c97f92","name":"ros-noetic-radar-msgs","requires":[],"size":48732,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c791fa0ace1a2a7afe155b35f9e59a692469f34bdb2e1579e6602c4bb4b75f0d"},"ros-noetic-radar-msgs-0.1.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530816897,"md5":"585c838da7f58aa62e6402973d27f70f","name":"ros-noetic-radar-msgs","requires":[],"size":50343,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed2c4daf981ec9f7b2476e447d1bdaa5c6c616687af1547863f2918bdcae6750"},"ros-noetic-mbf-abstract-core-0.4.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674177023419,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a33755ef18880f4ca63a54876f3c3b78","name":"ros-noetic-mbf-abstract-core","requires":[],"size":13907,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd9cafe4c3e270a04ff6dcbe524be7a7bf355ac6e011676a16374e3918da0f4f"},"ros-noetic-mbf-abstract-core-0.4.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530454537,"md5":"f470911ab7b0ae65300fccf5b9bde129","name":"ros-noetic-mbf-abstract-core","requires":[],"size":14679,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de93fcbbd376e9380a95bd6d4bbdcdbecab024b4d938a87b02788b71edd87b72"},"ros-noetic-ur-msgs-1.3.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674177133158,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"789f27e79d2dd1e5e92c338144bcc9f8","name":"ros-noetic-ur-msgs","requires":[],"size":78758,"version":"1.3.4","binstar":{"package_id":"63c9d3dedbdf733521f3f004","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"839c4c42f94d4c04857427231281983be9a6ce1504312e380bc418c026fd3999"},"ros-noetic-octomap-msgs-0.3.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176909612,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b0223520eb928b578ab243af1ff5bc15","name":"ros-noetic-octomap-msgs","requires":[],"size":50590,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e83e5f6c3a00c57f780db88f54df15844f7d81e6cf71e804fa98a3bd7be470a"},"ros-noetic-octomap-msgs-0.3.5-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530538610,"md5":"c19ea9dd94961697b6726f27e8b3ecc3","name":"ros-noetic-octomap-msgs","requires":[],"size":52238,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb8a72aa690b3d7ab674e6082cad54ad562224053f60b3b9b1d9dbb7a7f5e1d9"},"ros-noetic-resource-retriever-1.12.7-py39h88af2df_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcurl >=7.87.0,<8.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"build":"py39h88af2df_17","timestamp":1674176676405,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8702c0f52088f3be60539f649917dfc0","name":"ros-noetic-resource-retriever","requires":[],"size":22959,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a4ba4811295f478ac33857619c8841ee6acfb2b30a3f45245f1786f13bb35c9"},"ros-noetic-resource-retriever-1.12.7-py311h5814ca7_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h5814ca7_20","build_number":20,"depends":["__osx >=10.14","boost","libcurl >=8.5.0,<9.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530234333,"md5":"d1f2b81f2aee1c30db35cca14b7a3155","name":"ros-noetic-resource-retriever","requires":[],"size":24145,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eefe599553da4a829268c2ff0c6e30b9c23b5ff3f4878d862d7e5ff6bf8c69d0"},"ros-noetic-trajectory-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosbag-migration-rule","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176827210,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"46f13bc3f31fdd06e5574e5d7bf863c5","name":"ros-noetic-trajectory-msgs","requires":[],"size":48905,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a6a90974415907d01b15e4d00c5e4662b8aa359dafed5b9392974ab5e157115"},"ros-noetic-trajectory-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosbag-migration-rule","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530437562,"md5":"38b2b8f188e28507da61b8dc412e9287","name":"ros-noetic-trajectory-msgs","requires":[],"size":50684,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a779ae362432ace1b84de57b91fd8ddca0a317f132bd81d00151d86f365e7a5"},"ros-noetic-visualization-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176575029,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6eea4b4c7cdddf3dc6d35361991c7222","name":"ros-noetic-visualization-msgs","requires":[],"size":131271,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32ecd02452508da6056dcf5c56b2d31636f8577eb56698ab92d32c8a2acb63d6"},"ros-noetic-visualization-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530120776,"md5":"5316ded94076e332bf1f3d8a5dce7260","name":"ros-noetic-visualization-msgs","requires":[],"size":138087,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9f803bd8029b35824ea3fecac9956f85adcd6881f69fe7afad6c6a26bd1ffa7"},"ros-noetic-shape-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176753019,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b8443fbe6ab00c65ea10c42e95ea7e0b","name":"ros-noetic-shape-msgs","requires":[],"size":37725,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63343da25a9a3c332743e2d43f6cef37ae073f332b1c4a200ec5706211012cb9"},"ros-noetic-shape-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530331963,"md5":"800b32d24a33baf1edcc943abb3052f2","name":"ros-noetic-shape-msgs","requires":[],"size":38944,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0822b46696fc913a8fa52ba96072b8e881faabcf9d64b7e7833c77c9d0f764dc"},"ros-noetic-kdl-conversions-1.13.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs"],"build":"py39h00b06ca_17","timestamp":1674176816712,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a979de4398c35b194d9f14b4c97ac026","name":"ros-noetic-kdl-conversions","requires":[],"size":14017,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf291ea1cd2fe8dc23dfbed9db53c41ff4964e0f32e9dc856a1480a141f70a0f"},"ros-noetic-kdl-conversions-1.13.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530319838,"md5":"27c7abcd0bb15952c2e31d6a54a6320d","name":"ros-noetic-kdl-conversions","requires":[],"size":14827,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d9deb5490596617bb9f6e1e5d1b7616a9af01d446fa314a530d4185d1d24401"},"ros-noetic-qt-gui-py-common-0.4.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg"],"build":"py39h00b06ca_17","timestamp":1674176733160,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"319b33f39f90c193ba13c742e80a6bb9","name":"ros-noetic-qt-gui-py-common","requires":[],"size":28723,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6a4389bfedda0d67f7b28fb6806fe25b2259ee0aa916d74a0ff0c677561f141"},"ros-noetic-qt-gui-py-common-0.4.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530386916,"md5":"3c853427e2248a712d44f91eaf482d63","name":"ros-noetic-qt-gui-py-common","requires":[],"size":30450,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a217fd4f4e9077c01a71a41c3106ebb92ca399f8e75511b9429808cb59e9dcd5"},"ros-noetic-move-base-msgs-1.14.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674176899477,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a67a8ebdb9a64bbb0dd4c071a2c72058","name":"ros-noetic-move-base-msgs","requires":[],"size":61017,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d40d35660a48039051bf5518caf6a2ceb20f4fd0f5acbe10a16cc81bfa240174"},"ros-noetic-move-base-msgs-1.14.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530478240,"md5":"582594e62f79246d12ad4b252dd9895e","name":"ros-noetic-move-base-msgs","requires":[],"size":66918,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76e7591414bb11aa88d5acc6cbdbe271de1450b9ae77b2faba1a7b3dfea08994"},"ros-noetic-qt-gui-0.4.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674176567665,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a07adf2583b705fd8aacfe5ac65fd41c","name":"ros-noetic-qt-gui","requires":[],"size":175477,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8db7dc7066376af7ea240c5dd4f6ef9be66c9fd5c16cf64a38d33fc1204f20d1"},"ros-noetic-qt-gui-0.4.2-py311ha3ff0c1_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311ha3ff0c1_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","pyqt >=5.15.9,<5.16.0a0","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","rospkg","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530112530,"md5":"987b81fcc1e49b26b153d8e7fdfb41f5","name":"ros-noetic-qt-gui","requires":[],"size":185156,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"065915ecd14c963989a2a0f0e9014dcd7843cdd91622e02cad34ac8f1e89c538"},"ros-noetic-eigen-conversions-1.13.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176674370,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d4cd3d2411912597650d9b6c61158718","name":"ros-noetic-eigen-conversions","requires":[],"size":16320,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"293c8adaf2bb780ffa4852bd45bf712a62937af106771daab3607737d0130550"},"ros-noetic-eigen-conversions-1.13.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530220563,"md5":"131804bc48430e0c0ee542e11d88b0f7","name":"ros-noetic-eigen-conversions","requires":[],"size":17127,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18615028a0045b6b37b9ea11c0f36edf4ba4b361d74af4c3094f78492bce3ff5"},"ros-noetic-qt-dotgraph-0.4.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pydot","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding"],"build":"py39h00b06ca_17","timestamp":1674176738299,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a8510a1cc85ee43d12214eb4390ed98f","name":"ros-noetic-qt-dotgraph","requires":[],"size":46861,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c7dff296af6c561eb200778e4cd44fc251dd492e6b7d2c63c116d727c17df27"},"ros-noetic-qt-dotgraph-0.4.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","pydot","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530276386,"md5":"72d4f2a7e348ee3411eac982aacfa637","name":"ros-noetic-qt-dotgraph","requires":[],"size":49374,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c96fb86154eb5d743714ada62b966899b382b5a4ddba4f52ecfa387a51b571b"},"ros-noetic-ros-1.15.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-mk","ros-noetic-rosbash","ros-noetic-rosboost-cfg","ros-noetic-rosbuild","ros-noetic-rosclean","ros-noetic-roscreate","ros-noetic-roslang","ros-noetic-roslib","ros-noetic-rosmake","ros-noetic-rosunit"],"build":"py39h00b06ca_17","timestamp":1674176643716,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8f60cf9b5382f8b4f7222c19fbd5e55a","name":"ros-noetic-ros","requires":[],"size":7784,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63d2189a52d61dd89f6b12a4908bced5a6907d99866449691c1ddf3e253b71ef"},"ros-noetic-ros-1.15.8-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-mk","ros-noetic-rosbash","ros-noetic-rosboost-cfg","ros-noetic-rosbuild","ros-noetic-rosclean","ros-noetic-roscreate","ros-noetic-roslang","ros-noetic-roslib","ros-noetic-rosmake","ros-noetic-rosunit"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530189298,"md5":"bf7c5a4cf4e89fe1fb29cc342b800876","name":"ros-noetic-ros","requires":[],"size":8594,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6d0aa5dddf1798f85813a4e16504a865c50f201c982d22f6908410a51627411"},"ros-noetic-franka-msgs-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674176934673,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aeec0c0669500c557b0661737fc9c125","name":"ros-noetic-franka-msgs","requires":[],"size":128545,"version":"0.10.1","binstar":{"package_id":"63c9d4302e1172ba3668f511","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be97cf09b1f36a90c8015f066c4845c4cc15ca1167085385a20293eb4dcdec94"},"ros-noetic-roslisp-1.9.24-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","ros-noetic-rosgraph-msgs","ros-noetic-roslang","ros-noetic-rospack","ros-noetic-std-srvs","sbcl"],"build":"py39h00b06ca_17","timestamp":1674176565280,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de862fded78352c774bd8da623f06180","name":"ros-noetic-roslisp","requires":[],"size":126638,"version":"1.9.24","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"672a1418df87a9d121aa2537ceba60d95167283507141cb7f959d1ce93f1d31a"},"ros-noetic-roslisp-1.9.25-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ros-environment","ros-noetic-rosgraph-msgs","ros-noetic-roslang","ros-noetic-rospack","ros-noetic-std-srvs","sbcl"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530100629,"md5":"5ac297d7abcd9e22a7ba73d84299b793","name":"ros-noetic-roslisp","requires":[],"size":125864,"version":"1.9.25","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fda99457b86a0942acf91f71dad511b3501d8f71d638f81d3d70a32c0f79fd0"},"ros-noetic-geographic-msgs-0.5.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39h00b06ca_17","timestamp":1674176835909,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3cf35c4669a3adae5b55ea674e3f52df","name":"ros-noetic-geographic-msgs","requires":[],"size":133784,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cca2964bf6ea93fc09c7d7a61abe490e22bdd1b5720b72521908e69a8de4ced"},"ros-noetic-geographic-msgs-0.5.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530368030,"md5":"f28368f140ce96ced1f86019c533b64e","name":"ros-noetic-geographic-msgs","requires":[],"size":126144,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"800622e3aee778aeb68e895acd308343ddb098311ea44f5f136cde9743fdbe7d"},"ros-noetic-tf2-msgs-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation"],"build":"py39h00b06ca_17","timestamp":1674179312324,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6274828f8f2ccae6ec62f0b8aee1dec3","name":"ros-noetic-tf2-msgs","requires":[],"size":76998,"version":"0.7.6","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32d235e2eeca26a5d7315d5096077df065186bbf2d34e04c8d4b39926fdd4c8a"},"ros-noetic-tf2-msgs-0.7.7-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530521723,"md5":"6f283a087438da85d9d36cc31be12f62","name":"ros-noetic-tf2-msgs","requires":[],"size":81722,"version":"0.7.7","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9592f835a5207e5220afa1dc60d900b478c93a72278019329bc54b574c2495d5"},"ros-noetic-pluginlib-1.13.0-py39h556cec8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h556cec8_17","timestamp":1674179232231,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8614c263cd13efbe4c482caa946b48ef","name":"ros-noetic-pluginlib","requires":[],"size":24702,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9fea64d13804ebc039cb77e6bfd32832bc451dcebd606b4d91e62b622a757ab"},"ros-noetic-pluginlib-1.13.0-py311h0f7ea6c_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h0f7ea6c_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530402386,"md5":"606726675993120cc961e7753cde9f30","name":"ros-noetic-pluginlib","requires":[],"size":25450,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdb6d4e24d24a5acb65e4f3d7041cf9b1f4d27fdda07a9524158ae5b40b8ab1f"},"ros-noetic-roscpp-1.15.15-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rosgraph-msgs","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39h76d4aab_17","timestamp":1674179154415,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d66bd97e409887eb61db8808e65c06e3","name":"ros-noetic-roscpp","requires":[],"size":511885,"version":"1.15.15","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18765848720358d757f9408ddb6c3413588d68871f4ba01678fe719e82a25696"},"ros-noetic-roscpp-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rosgraph-msgs","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530313631,"md5":"b7ff2067b33d9c66921777edefbb1660","name":"ros-noetic-roscpp","requires":[],"size":515154,"version":"1.16.0","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cab62e0167221615f9f6b44fad6f0df0778a362db4ce4b982c1ca398baaa1a60"},"ros-noetic-nav-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674179501084,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eda94c1c21dbd5e6fff9e26c19fb3cb9","name":"ros-noetic-nav-msgs","requires":[],"size":115813,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f252ff580b50ef015eb51a6b26ecc0ba330ba5aaaeb35d43b5b6a9583f8c1bf6"},"ros-noetic-nav-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530752944,"md5":"2b67642ca8feff0e73a9eac6a8d535b3","name":"ros-noetic-nav-msgs","requires":[],"size":129837,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e6b2e829e83f82990f7c1d9d4dad48572f3ece7a9adfece5edde72a1e0f9a12"},"ros-noetic-rosconsole-bridge-0.5.4-py39hebd05f9_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"build":"py39hebd05f9_17","timestamp":1674179412099,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ba185d695d37a5be35b41cfd98e8c84b","name":"ros-noetic-rosconsole-bridge","requires":[],"size":17595,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa821099c6bf47ac9aa105915066d4d49b4514fb7a0b8e49f90c3a570e46b68a"},"ros-noetic-rosconsole-bridge-0.5.4-py311he602911_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311he602911_20","build_number":20,"depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530628372,"md5":"200c74c19b1fead7688bf210b6ff2d78","name":"ros-noetic-rosconsole-bridge","requires":[],"size":18388,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0e2c6e22778bfddd0586ca1bea6794b57364371c339585f9902538d554dfc92"},"ros-noetic-tf2-0.7.6-py39hebd05f9_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rostime","ros-noetic-tf2-msgs"],"build":"py39hebd05f9_17","timestamp":1674180013189,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"476f17ca479ea56329f8a4a2b2aae911","name":"ros-noetic-tf2","requires":[],"size":120939,"version":"0.7.6","binstar":{"package_id":"63c9d5c02ff78d332e6f5991","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4fba4ae7f4cbd788f77c9cde11d7d9acc7244caa38980c28242f94a75d455b1"},"ros-noetic-tf2-0.7.7-py311he602911_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311he602911_20","build_number":20,"depends":["__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-rostime","ros-noetic-tf2-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531328940,"md5":"b4114a651f3e1c7be41300f49f0aa8d4","name":"ros-noetic-tf2","requires":[],"size":125553,"version":"0.7.7","binstar":{"package_id":"63c9d5c02ff78d332e6f5991","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8deb0153f1e52d96a5eae96840757db20a16c670332c93a46c24ab6705d078f"},"ros-noetic-geometric-shapes-0.7.3-py39ha2a5d1a_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"build":"py39ha2a5d1a_17","timestamp":1674178135714,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2f196773fa3e59bfe145f08403d41435","name":"ros-noetic-geometric-shapes","requires":[],"size":102825,"version":"0.7.3","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f636bba1c10cb781ee12e65cb2c8ad71a50df10b57da893cf7dcd77b136f0ae8"},"ros-noetic-geometric-shapes-0.7.5-py311hae9831a_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hae9831a_20","build_number":20,"depends":["__osx >=10.14","assimp >=5.3.1,<5.3.2.0a0","boost","console_bridge >=1.0.2,<1.1.0a0","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531484661,"md5":"ce8f9d689af6ac80439d8bdea6e539bb","name":"ros-noetic-geometric-shapes","requires":[],"size":108573,"version":"0.7.5","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fc670ae396233aebdd5c9ec02ba1f50bba24c156aafb0db9a427f707490ea7f"},"ros-noetic-voxel-grid-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674180138417,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"df2f51f240cedfab40a8b78f82ca51ef","name":"ros-noetic-voxel-grid","requires":[],"size":22484,"version":"1.17.3","binstar":{"package_id":"63c9d5c1edf45d7c2e29da9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"888f84a990f7ece35f1c9ef052f8f33c1522c572e833dcfefef11fe4e4b4ae26"},"ros-noetic-voxel-grid-1.17.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531608120,"md5":"1cc326a15f11483a0c29f4cb7741a235","name":"ros-noetic-voxel-grid","requires":[],"size":23193,"version":"1.17.3","binstar":{"package_id":"63c9d5c1edf45d7c2e29da9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5cd4aa461e3c59fa39791c97b2636feef7b7dc8c9f28b0f71769b49f5dcf6e5"},"ros-noetic-rosout-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosgraph-msgs"],"build":"py39h00b06ca_17","timestamp":1674179814506,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f0d5828d26cb34edc0c731f65770f63c","name":"ros-noetic-rosout","requires":[],"size":41463,"version":"1.15.15","binstar":{"package_id":"63c9d5c220c05f5e390870d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76924dd53af5500c8a5a34b719b7e4353704ea0046806ed76fa842b582636d5f"},"ros-noetic-rosout-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-rosgraph-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531129609,"md5":"0abf85b1b02992889253cc9b458c387a","name":"ros-noetic-rosout","requires":[],"size":41799,"version":"1.16.0","binstar":{"package_id":"63c9d5c220c05f5e390870d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67c351576a6ed3912ff7983f5cf9555ec200704412f5c1393f4f0ead4a748278"},"ros-noetic-rospy-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","rospkg"],"build":"py39h00b06ca_17","timestamp":1674179888981,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"69bf1f501c1d50c5e2472dabfa45d4e0","name":"ros-noetic-rospy","requires":[],"size":255862,"version":"1.15.15","binstar":{"package_id":"63c9d5c3edf45d7c2e29daae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2304fcfb25a2447deff18a938614f6c6fa3fb389ac07f291ccd29a37ca635b44"},"ros-noetic-rospy-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genpy","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531218288,"md5":"960a7663e79a6c088bfd111d2d2c3d38","name":"ros-noetic-rospy","requires":[],"size":267301,"version":"1.16.0","binstar":{"package_id":"63c9d5c3edf45d7c2e29daae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57e076d0183708027c6a00c24a7994188c209f33844d67b6a22a8002dbe1948d"},"ros-noetic-plotjuggler-3.6.0-py39he71aecd_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","cppzmq","libcxx >=14.0.6","lz4","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roslib","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.4,<4.4.0a0","zstd >=1.5.2,<1.6.0a0"],"build":"py39he71aecd_18","timestamp":1681696741850,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ac718b938defcad4dce5d8bc387b00ae","name":"ros-noetic-plotjuggler","requires":[],"size":23038505,"version":"3.6.0","binstar":{"package_id":"63c9d8210273ee116a012b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddc652c95a1d719f0c730910195c151e3f48d025326dc65358cbc7ed281381f5"},"ros-noetic-plotjuggler-3.8.9-py311ha2609da_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311ha2609da_20","build_number":20,"depends":["__osx >=10.13","__osx >=10.14","boost","cppzmq","libcxx >=15","libprotobuf >=4.24.4,<4.24.5.0a0","lz4","numpy >=1.23.5,<2.0a0","protobuf","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-roslib","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.5,<4.4.0a0","zstd >=1.5.5,<1.6.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532286384,"md5":"16b4f3d0b45bb9545b97237d41e12737","name":"ros-noetic-plotjuggler","requires":[],"size":9989132,"version":"3.8.9","binstar":{"package_id":"63c9d8210273ee116a012b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"763ca4b1bdc16fdd23d5ab14b617c7891cb03bc8832d67d5cafb74bba82bbcab"},"ros-noetic-mbf-msgs-0.4.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674185712871,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"53c65dc640008b78a61c2bee285de032","name":"ros-noetic-mbf-msgs","requires":[],"size":212082,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"989a86e9bcf4683008ebc87a4c0e5893ede50c3ae0fceafecba7b2a39d283d3e"},"ros-noetic-mbf-msgs-0.4.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531080968,"md5":"e806ed8155c7dda268a4699a8922cb88","name":"ros-noetic-mbf-msgs","requires":[],"size":235840,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62fb29fd01f0cdf01198350267b71fd08a50414d410b0b6882a47836da781c88"},"ros-noetic-roscpp-tutorials-0.10.2-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime","ros-noetic-std-msgs"],"build":"py39h76d4aab_17","timestamp":1674275835526,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"63adcef69a7dc264eb3636ab9287b4fb","name":"ros-noetic-roscpp-tutorials","requires":[],"size":181460,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eff444a2c068cdcf6a2a87799a52d0001f205e7e2f3efc842665036ffa31faa3"},"ros-noetic-roscpp-tutorials-0.10.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531337138,"md5":"da4a98fc2f5e280c06f3327790b30105","name":"ros-noetic-roscpp-tutorials","requires":[],"size":181855,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b43a813543fcfae7cd6c85d8b9b31460fb7cf16314b1825c8ab79a43e34dbfe7"},"ros-noetic-bondpy-1.8.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-smclib"],"build":"py39h00b06ca_17","timestamp":1674355843944,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4654e2978c7e90d10ece2384f4bfc95e","name":"ros-noetic-bondpy","requires":[],"size":29588,"version":"1.8.6","binstar":{"package_id":"63c9e0c768b198bb95994813","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"717f41bf1cb6d8a816542567f22bc67a065c181d6ea821835f4441504c3b0d04"},"ros-noetic-bondpy-1.8.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rospy","ros-noetic-smclib"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573668195,"md5":"4c3eaeb1cc5fcab45e898ef75bad1adb","name":"ros-noetic-bondpy","requires":[],"size":30967,"version":"1.8.6","binstar":{"package_id":"63c9e0c768b198bb95994813","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"578a39a36ba9b5bac3b4aecdf0fd112af63426e5849a32c3f9eaffa43d311aff"},"ros-noetic-control-msgs-1.5.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39h00b06ca_17","timestamp":1674178253125,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4b67e6319898a6335d5e1c1006d0ed0b","name":"ros-noetic-control-msgs","requires":[],"size":220889,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b67710c3f4d652b96cac8cdc9845d212fc58418c537e6faafd237fe1a4994644"},"ros-noetic-control-msgs-1.5.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531961176,"md5":"77001b15a9c69e19c12a14675281d302","name":"ros-noetic-control-msgs","requires":[],"size":244028,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"080935339f239722f86e413feb36cc1ee6f792f737c4ad220f4457776364180e"},"ros-noetic-urdfdom-py-0.4.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674185918764,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8b8590d020c1fba64eaef5cbe6aa0913","name":"ros-noetic-urdfdom-py","requires":[],"size":59110,"version":"0.4.6","binstar":{"package_id":"63c9e0f55a31eb90f6a5ab76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5edd36e8bfae7c9a01703e9a21a70175548417dd3f10cf61661410123ff41842"},"ros-noetic-urdfdom-py-0.4.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rospy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532757999,"md5":"f6dd1286bad0d2211d556e7db073d102","name":"ros-noetic-urdfdom-py","requires":[],"size":61479,"version":"0.4.6","binstar":{"package_id":"63c9e0f55a31eb90f6a5ab76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aaf8c8944c8dff3df9572c4f6bc1aa660262e8eea2b52e1c6b8ee4a6c481ae92"},"ros-noetic-roslaunch-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosclean","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosmaster","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rosunit","rospkg"],"build":"py39h00b06ca_17","timestamp":1674185584729,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"10663b4cdc9bf1724cb27b34a7d17252","name":"ros-noetic-roslaunch","requires":[],"size":253934,"version":"1.15.15","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2586ca61014a6a2eb9ccb214e31507742a43dc7dbcd32b47fa241e6e3f5785d2"},"ros-noetic-roslaunch-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","paramiko","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosclean","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosmaster","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rosunit","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532573705,"md5":"a856a27298f692e0a67ecdd43abbef34","name":"ros-noetic-roslaunch","requires":[],"size":282828,"version":"1.16.0","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c4c644e18e9de6ff246107b4f639da354f30679c248393bf59815851dc47bf3"},"ros-noetic-tf2-eigen-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39h00b06ca_17","timestamp":1674186007785,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"77b462be539a6d0644696c04ff400361","name":"ros-noetic-tf2-eigen","requires":[],"size":13994,"version":"0.7.6","binstar":{"package_id":"63c9ea252ff78d332e775793","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5a7fa6c38c169e56bfcd110fab303f0d96583759a057167882c0d5d430f50f8"},"ros-noetic-tf2-eigen-0.7.7-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532840977,"md5":"481e00226b0377ee5c5f5f27291113c1","name":"ros-noetic-tf2-eigen","requires":[],"size":14766,"version":"0.7.7","binstar":{"package_id":"63c9ea252ff78d332e775793","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e28f532d8f5f489d37e4c5a6262f748b2dcbff904ee3ee49feabb0285b3f497c"},"ros-noetic-tf2-py-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2"],"build":"py39h00b06ca_17","timestamp":1674185716655,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"41c46f05bc172e3091a4acd60dae5e3b","name":"ros-noetic-tf2-py","requires":[],"size":35539,"version":"0.7.6","binstar":{"package_id":"63c9ea2859c09271a4483f0a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a88257029b6a056a56301157627fc74248e583f09935752c81b66e18f3ea600"},"ros-noetic-tf2-py-0.7.7-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rospy","ros-noetic-tf2"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532694422,"md5":"34733f3daef78b1518d753dd2d192bbc","name":"ros-noetic-tf2-py","requires":[],"size":36286,"version":"0.7.7","binstar":{"package_id":"63c9ea2859c09271a4483f0a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71a06ae375f4d0625e14dfbf5aa33ac3a93e78e1f71b06d1a7bced0e1d741b28"},"ros-noetic-rqt-gui-0.5.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","rospkg"],"build":"py39h00b06ca_17","timestamp":1674271175172,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c995dc1d428b3e008e096ec2dea15560","name":"ros-noetic-rqt-gui","requires":[],"size":114015,"version":"0.5.3","binstar":{"package_id":"63c9ea292ff78d332e775808","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89b2465b650713d3abf879d9260f705b0a684d8254f8a9cbd49be54f18bcae46"},"ros-noetic-rqt-gui-0.5.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532963733,"md5":"9780780d8e6017c95b166ff6e5ee028c","name":"ros-noetic-rqt-gui","requires":[],"size":116577,"version":"0.5.3","binstar":{"package_id":"63c9ea292ff78d332e775808","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6501e015ecc19bcacfbe47e69bbb1b2b6383095352c596808bec55b4320beb8b"},"ros-noetic-bondcpp-1.8.6-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-roscpp","ros-noetic-smclib"],"build":"py39h76d4aab_17","timestamp":1674180260471,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8bcd8d0d058778b14723825ab58f6bac","name":"ros-noetic-bondcpp","requires":[],"size":63578,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48a8846f7480082585c78376386e9deb77ee97aa2ed8aa35305383417510b044"},"ros-noetic-bondcpp-1.8.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-bond","ros-noetic-roscpp","ros-noetic-smclib"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531092673,"md5":"facedbb7cc20d05f308afe6469b7ce14","name":"ros-noetic-bondcpp","requires":[],"size":64219,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"513a239302178fba14fbb4a8f4def080de70d5fcd3d7f577433d3b6f395c0c0b"},"ros-noetic-hardware-interface-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674271252022,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"06deb7b12004dc918799f070bac51f4c","name":"ros-noetic-hardware-interface","requires":[],"size":24715,"version":"0.19.6","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7269fe8c3e768201c5f7c73d4c917e278772b3d5de9ff2b5da0f7951c5dda28"},"ros-noetic-hardware-interface-0.20.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531178797,"md5":"ff769986dff15405facfe46b27279c29","name":"ros-noetic-hardware-interface","requires":[],"size":26054,"version":"0.20.0","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69982a82cd4675219dd11706821aba55b064c2874bb7aeb1e27eafb328ca74ab"},"ros-noetic-dynamixel-sdk-3.7.51-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674185838836,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea64f35278fbad85c01865160e2b6c7c","name":"ros-noetic-dynamixel-sdk","requires":[],"size":97947,"version":"3.7.51","binstar":{"package_id":"63c9edc8912363225b8c59a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f57b31684c4c2f0b7e33921be0d7335099b546334669a5eb4d018d1885508d7e"},"ros-noetic-dynamixel-sdk-3.7.51-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-rospy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532787631,"md5":"13dc16fe283fe24620ac0c3ef2bae88d","name":"ros-noetic-dynamixel-sdk","requires":[],"size":96516,"version":"3.7.51","binstar":{"package_id":"63c9edc8912363225b8c59a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac24cd917f30fc963f4e9cde96137ab54250ac318aed47b3a6265772885b90a3"},"ros-noetic-tf2-bullet-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","bullet","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39h00b06ca_17","timestamp":1674185971485,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b3ad56b98b8c07bf8d62f651f5f57f0","name":"ros-noetic-tf2-bullet","requires":[],"size":12554,"version":"0.7.6","binstar":{"package_id":"63c9edc90273ee116a06ee2d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cd2b7f31d40543c89a612b0d6169fc81927c239c7274f0d575694137ec4892a"},"ros-noetic-tf2-bullet-0.7.7-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","bullet","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532897544,"md5":"634bebf1b27664509bd10c6fa89ce3f4","name":"ros-noetic-tf2-bullet","requires":[],"size":13357,"version":"0.7.7","binstar":{"package_id":"63c9edc90273ee116a06ee2d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a3f61a96cc50c7854d07f7ba8a78cfc2b8202a3ccb71a9df5a72bee992fe1b6"},"ros-noetic-rostest-1.15.15-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-rosmaster","ros-noetic-rospy","ros-noetic-rosunit"],"build":"py39h76d4aab_17","timestamp":1674271078462,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9593e48fc744dcd06f7fda6dcd8f5bc2","name":"ros-noetic-rostest","requires":[],"size":51114,"version":"1.15.15","binstar":{"package_id":"63c9ee545a31eb90f6aa0eee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04e756bd839f9c76a9a4f6297cb805c7a3fa3824b56d46e8c2de9762948110b5"},"ros-noetic-rostest-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-rosmaster","ros-noetic-rospy","ros-noetic-rosunit"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573444297,"md5":"1ce90c1d60a088b8d05b92db17b1626e","name":"ros-noetic-rostest","requires":[],"size":53518,"version":"1.16.0","binstar":{"package_id":"63c9ee545a31eb90f6aa0eee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45e4e6bc9047a3b58aa6429981654749807c76470e3a3b8d5c698562d8018e1b"},"ros-noetic-controller-interface-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674275670197,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1b35ea87fd56a1e6defc7a3d1d0c7174","name":"ros-noetic-controller-interface","requires":[],"size":17353,"version":"0.19.6","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34342520d67441aeb06dd9b14a54ce609141519ec05c1da36dfb5a73a4942250"},"ros-noetic-controller-interface-0.20.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573912282,"md5":"ca84f25ae7848dbc32d53b1758e10631","name":"ros-noetic-controller-interface","requires":[],"size":18189,"version":"0.20.0","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e1a2b230c82d628f7abfaebd9dc78a34890358a4475d87d79c69e6497a46be4"},"ros-noetic-rqt-gui-py-0.5.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui"],"build":"py39h00b06ca_17","timestamp":1674355760133,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c8bf78564e10c6f15e1f4f5ea7300f30","name":"ros-noetic-rqt-gui-py","requires":[],"size":18935,"version":"0.5.3","binstar":{"package_id":"63c9ee5620c05f5e390ad6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"883883b671aed1bffed85efcd2b71255bf0a2fd60509bba3827f030578aeb90a"},"ros-noetic-rqt-gui-py-0.5.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573574883,"md5":"7a07f965e658b729f65810654522d7e0","name":"ros-noetic-rqt-gui-py","requires":[],"size":20254,"version":"0.5.3","binstar":{"package_id":"63c9ee5620c05f5e390ad6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81a89e7799d94d6b09edc3fe3877e717bed2dbe22b3419143ee23fffb3c10107"},"ros-noetic-nodelet-1.10.2-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39h20fafc8_17","timestamp":1674271386197,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8c7d461f3477e1f566177da81f7544ac","name":"ros-noetic-nodelet","requires":[],"size":180057,"version":"1.10.2","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4b8d3896388f0aed1c4224de2794c389719467a15be0ed827513921ffb6174a"},"ros-noetic-nodelet-1.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-bondcpp","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573820333,"md5":"493414f41b169160960b80f6d3c9afdf","name":"ros-noetic-nodelet","requires":[],"size":183783,"version":"1.11.0","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f45a0299d67fb77b16ffde85db17da203c62cfe37d343b0c5d811a6b9610572"},"ros-noetic-combined-robot-hw-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674275727630,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49fa86aed6f73fbffb6476e80c4e6308","name":"ros-noetic-combined-robot-hw","requires":[],"size":84797,"version":"0.19.6","binstar":{"package_id":"63c9ee81dbdf733521008d23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"180002878a24168737d5292a8c5f7e1647121a1007f6618a7557bd8826908862"},"ros-noetic-combined-robot-hw-0.20.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532675870,"md5":"bd9c7d87b915e1b639ae7aeb6fea2ea6","name":"ros-noetic-combined-robot-hw","requires":[],"size":86733,"version":"0.20.0","binstar":{"package_id":"63c9ee81dbdf733521008d23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc22332157793603d9d0285404e03c86b69f193fb90028f736dbb7120c68b418"},"ros-noetic-transmission-interface-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","tinyxml"],"build":"py39h00b06ca_17","timestamp":1674276133653,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1d57dcc13c8828c016242e83e393039c","name":"ros-noetic-transmission-interface","requires":[],"size":212791,"version":"0.19.6","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa14190d3f03e47d2ddd99ebf85bda041fbc1e39e0bc2af7387f276175f8e415"},"ros-noetic-transmission-interface-0.20.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","tinyxml"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573511035,"md5":"ffdb7d6b0f7b0b257ad30fcc53b26351","name":"ros-noetic-transmission-interface","requires":[],"size":215841,"version":"0.20.0","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d586da93a3b9913838da4f6b52baadba9840f130fb6c70d03270e1be24868b78"},"ros-noetic-rosserial-python-0.9.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rospy","ros-noetic-rosserial-msgs"],"build":"py39h00b06ca_17","timestamp":1674276214786,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a291885071cf3b670cca3b88e2063566","name":"ros-noetic-rosserial-python","requires":[],"size":45293,"version":"0.9.2","binstar":{"package_id":"63c9ee832ff78d332e79491f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c85188203f1b513a221e64402af72d4276abb2ed29acb96a6d15a4bf698ac71a"},"ros-noetic-rosserial-python-0.9.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","pyserial","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rospy","ros-noetic-rosserial-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706573598092,"md5":"4417c070843f6d1894575b225325e2e9","name":"ros-noetic-rosserial-python","requires":[],"size":48407,"version":"0.9.2","binstar":{"package_id":"63c9ee832ff78d332e79491f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"674c6189337d1da0571af174969206c60753b6e581be3936067b83e1533e02c5"},"ros-noetic-bond-core-1.8.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-smclib"],"build":"py39h00b06ca_17","timestamp":1674383767810,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9eeb5b0433f05fdd977bf1f3f6a4c645","name":"ros-noetic-bond-core","requires":[],"size":7726,"version":"1.8.6","binstar":{"package_id":"63c9ee848ff1ad27428eb132","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f69de918129a390cb78c7f5f017410bab994c6a2ad1577e82d30695f04939de"},"ros-noetic-bond-core-1.8.6-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-bond","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-smclib"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574818505,"md5":"901e16d560cf3f6550b4871312e600b7","name":"ros-noetic-bond-core","requires":[],"size":8554,"version":"1.8.6","binstar":{"package_id":"63c9ee848ff1ad27428eb132","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60d97a6bb5dadb38a56aab7c616098a806125b0796b43541a85364935164bcd8"},"ros-noetic-turtlesim-0.10.2-py39hd8f4523_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39hd8f4523_17","timestamp":1674185713371,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"192629561c19cf12722b472823d8926b","name":"ros-noetic-turtlesim","requires":[],"size":272797,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f152443f2fee0087cb708c5898240a03d463b9b31390d665a6bf5729e6ff190d"},"ros-noetic-turtlesim-0.10.2-py311hee133a5_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hee133a5_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-std-srvs","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531192199,"md5":"765aff7647726d5973aa118bfc7459f1","name":"ros-noetic-turtlesim","requires":[],"size":275155,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e96f080aa79690565dc4b667504ea2eb1e282cadbbb47a446afbbf5842db0f1"},"ros-noetic-kdl-parser-py-1.14.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdfdom-py"],"build":"py39h00b06ca_17","timestamp":1674276143001,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"59c36a67acceacfa4baddfa32f0bb62d","name":"ros-noetic-kdl-parser-py","requires":[],"size":19476,"version":"1.14.2","binstar":{"package_id":"63c9f11bd0e8c095e22c66eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b56b01b50a88c1f4e9e3fd7ff6f527b8601084ea99fa113634fd3e6ae9fc24d6"},"ros-noetic-kdl-parser-py-1.14.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python-orocos-kdl","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-urdfdom-py"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575088264,"md5":"2f980bbe6ea0e1749be12e1abcf55d36","name":"ros-noetic-kdl-parser-py","requires":[],"size":20556,"version":"1.14.2","binstar":{"package_id":"63c9f11bd0e8c095e22c66eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80b97f1152810d969f6a368770e4fe175f1badd24f3320482487533a5a45511f"},"ros-noetic-pluginlib-tutorials-0.2.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674186157285,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4b891334f4ecb1423292c5179e339b85","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":75462,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71dc4cf84f9bfb49981c6c169ecd1e86420a1cabedde4a8c24bec4dff4111fc9"},"ros-noetic-pluginlib-tutorials-0.2.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531645178,"md5":"18139e52326cbf48f935c3a57ecc4de1","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":76344,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55b2dd8dc304026966f84f389586e265310733a3dd11e5d3bfcf87b1b0ab6f00"},"ros-noetic-rqt-top-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39h00b06ca_17","timestamp":1674383673293,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49175b178af1402ad6762513c88d5ccd","name":"ros-noetic-rqt-top","requires":[],"size":27691,"version":"0.4.10","binstar":{"package_id":"63c9f1a25a31eb90f6ab77f6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e4013443c95be0586172bf263971b1b37889e69e52dcf75fb6b4f1a2a2f3be5"},"ros-noetic-rqt-top-0.4.10-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","psutil","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575016363,"md5":"69a09206cd95d14ea16acfc95c9a2e85","name":"ros-noetic-rqt-top","requires":[],"size":29548,"version":"0.4.10","binstar":{"package_id":"63c9f1a25a31eb90f6ab77f6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4baf1d4b4b9a85a64513e5df2783fe0ed5a13697cfda424024442d0f2b15ad11"},"ros-noetic-rospy-tutorials-0.10.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674330101547,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fd8fb147f03740e2a80933aace37b579","name":"ros-noetic-rospy-tutorials","requires":[],"size":56471,"version":"0.10.2","binstar":{"package_id":"63c9f1a3c37c80a75b45311d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7cbf36c72eb58048224267594bb5074f2d0a4b8ef96772cd3779517fca7269c1"},"ros-noetic-rospy-tutorials-0.10.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574738007,"md5":"1c831a72dad4861b71c1f785a78114dc","name":"ros-noetic-rospy-tutorials","requires":[],"size":56859,"version":"0.10.2","binstar":{"package_id":"63c9f1a3c37c80a75b45311d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ac418ca073c31ea36a33824c40f9b8510787c06cfe0056fdf29c432f26d29ce"},"ros-noetic-rqt-runtime-monitor-0.5.9-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383507409,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7ab8aab814277e10a9c3508853024e72","name":"ros-noetic-rqt-runtime-monitor","requires":[],"size":28715,"version":"0.5.9","binstar":{"package_id":"63c9f1a5a64974fd09a5942b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4ca45774fe3c9099928822ffb2d623a76bca0976eeae0e479f24c79c89e2e14"},"ros-noetic-rqt-runtime-monitor-0.5.10-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574888745,"md5":"236fac5f8796469317f44d54e430871a","name":"ros-noetic-rqt-runtime-monitor","requires":[],"size":31266,"version":"0.5.10","binstar":{"package_id":"63c9f1a5a64974fd09a5942b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c8ad70971d58ac50e78cd3db9bad1f8db8cefa0953a0ade9a5c689b700fe81b"},"ros-noetic-rqt-web-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-webkit-dependency","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383620240,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"48435d49a0eebcba28e1c83bf51fb782","name":"ros-noetic-rqt-web","requires":[],"size":23696,"version":"0.4.10","binstar":{"package_id":"63c9f1a6dbdf733521024dae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a91a11451a38035853e5e3b81d5ee7ae4ef2c4045cd09d7fa7d7c59378c3762"},"ros-noetic-rqt-web-0.4.10-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-webkit-dependency","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574955004,"md5":"4a29423376b55747faf2d155a89d0fcb","name":"ros-noetic-rqt-web","requires":[],"size":25073,"version":"0.4.10","binstar":{"package_id":"63c9f1a6dbdf733521024dae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aefcc822a5fbd1fb22c027f677e4147939d0a6ed3cb827b99135c77f323498cf"},"ros-noetic-rqt-shell-0.4.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383726297,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6818e535743271f5a616375d8a88d041","name":"ros-noetic-rqt-shell","requires":[],"size":28969,"version":"0.4.11","binstar":{"package_id":"63c9f1a7b05590e2b1c00213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"449a8afcdc026c206c0dac4a707aa822ebcdb6ff7e40d8999bbbf53d0e672dc8"},"ros-noetic-rqt-shell-0.4.11-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574702301,"md5":"8c6db4607ab83bc127a2a5fd280df9c5","name":"ros-noetic-rqt-shell","requires":[],"size":30706,"version":"0.4.11","binstar":{"package_id":"63c9f1a7b05590e2b1c00213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"978f024fe8055593326603e70e13f785ceea0532d279d8ba05c0cec5a1dc1cfd"},"ros-noetic-hector-map-tools-0.5.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs"],"build":"py39h00b06ca_17","timestamp":1674185898857,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fb31e97a1c22dfb60242dcc292a86564","name":"ros-noetic-hector-map-tools","requires":[],"size":14138,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd9bf6511c92e9050d7dc59aee585d0ed6aa44a8c841ffd20258e5f697d136ca"},"ros-noetic-hector-map-tools-0.5.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-nav-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531401553,"md5":"1e5d9f5e510006e4b4cbede4748ceaf4","name":"ros-noetic-hector-map-tools","requires":[],"size":14949,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69f7776cd2c3059bb44518cb1644bc4fc63048133920a6883650338a4436da13"},"ros-noetic-visualization-marker-tutorials-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674186018763,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6fdd87f8a7640548b936b6ea58ade3ba","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":27926,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6567a91840f43aa148678013b714cc5dc542f36e66db18bd0ae9f0aade964105"},"ros-noetic-visualization-marker-tutorials-0.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531522375,"md5":"38bf82f8a1018c0abbce1158f281a094","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":28614,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bf76bb044d512508561cdbf7d2d481dd44f8aa62fd1d411f7d35488b00fec7e"},"ros-noetic-rqt-py-console-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383984899,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"801f75c26ba842346936e8c340608444","name":"ros-noetic-rqt-py-console","requires":[],"size":23547,"version":"0.4.10","binstar":{"package_id":"63c9f21ac37c80a75b4552b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3603049b0e5961b51868d5b0baacf8a8fa0150cd420822646a963294511bd847"},"ros-noetic-rqt-py-console-0.4.10-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574762849,"md5":"f53888dfbc1390371d8f74f836d2157c","name":"ros-noetic-rqt-py-console","requires":[],"size":24787,"version":"0.4.10","binstar":{"package_id":"63c9f21ac37c80a75b4552b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4c8a8aa8a3ff62eeab208fe02c73d055b431626ef9521a941fc5247a50f0b2e"},"ros-noetic-hector-nav-msgs-0.5.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674185812977,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8af3c7e6cfc3996be822feeeff3db845","name":"ros-noetic-hector-nav-msgs","requires":[],"size":60906,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c91da30d74a4d10c4edd38f01a6b6702c3e3c752a806034e6289f04cbc57c24f"},"ros-noetic-hector-nav-msgs-0.5.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531306537,"md5":"caf61ae2e566fd3e31c3abab6279ef13","name":"ros-noetic-hector-nav-msgs","requires":[],"size":63993,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"099f54c9ff8c325bc58e0e9ef3846ab02b0db62b1552acf08cfa12bf8ae86350"},"ros-noetic-urdf-1.13.2-py39haadae1a_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39haadae1a_17","timestamp":1674276136544,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a5d13491ea3ef9fb2b66ca163ac3fa44","name":"ros-noetic-urdf","requires":[],"size":85922,"version":"1.13.2","binstar":{"package_id":"63c9f233c37c80a75b456731","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7d781d7846328eb0b7f41de1dd40f020438a22ae8c682a5c863638faee0a01a"},"ros-noetic-urdf-1.13.2-py311h0ae3a70_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h0ae3a70_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","tinyxml","tinyxml2 >=10.0.0,<11.0a0","urdfdom >=4.0.0,<4.1.0a0","urdfdom_headers"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575230377,"md5":"819c0c890745f7672192d17ddc5cb60e","name":"ros-noetic-urdf","requires":[],"size":86836,"version":"1.13.2","binstar":{"package_id":"63c9f233c37c80a75b456731","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"292e42f4d12b89e26d392ec2b523241846427233248fbf5828a4443ebd7e36da"},"ros-noetic-xacro-1.14.14-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslaunch"],"build":"py39h00b06ca_17","timestamp":1674330389203,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ce82deb1b3011d5722cb7d2014116001","name":"ros-noetic-xacro","requires":[],"size":68138,"version":"1.14.14","binstar":{"package_id":"63c9f236b23346582ca98c5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ff8a275c6233bc25035973f58089f4a45f9277af2f590d82ecd564b9a10e8f8"},"ros-noetic-xacro-1.14.17-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roslaunch"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575327009,"md5":"aedb22244d23201d0fc30066c1358b94","name":"ros-noetic-xacro","requires":[],"size":72912,"version":"1.14.17","binstar":{"package_id":"63c9f236b23346582ca98c5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcf185a6b545503df59bbe1f8b96b7274c818233f579e1e0c759dc25d36e99de"},"ros-noetic-topic-tools-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39h00b06ca_17","timestamp":1674275676934,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8375d1a3735b722df88acecb93bde78f","name":"ros-noetic-topic-tools","requires":[],"size":200678,"version":"1.15.15","binstar":{"package_id":"63c9f23759c09271a44a50b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"098fb546a1ac357cf4a5b3cbc6fc37db135b0d4ee2f23e043ea11765c9f9f590"},"ros-noetic-topic-tools-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574808662,"md5":"0ca50db6b6b811872d8e346b3f94b029","name":"ros-noetic-topic-tools","requires":[],"size":201283,"version":"1.16.0","binstar":{"package_id":"63c9f23759c09271a44a50b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f52269f548dd03d9c58d2298fb4bea6f2466dbfdcc2c67dcbc5136d189156410"},"ros-noetic-message-filters-1.15.15-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"build":"py39h76d4aab_17","timestamp":1674275993376,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"19eff052840617138e56d8bcd759adad","name":"ros-noetic-message-filters","requires":[],"size":47697,"version":"1.15.15","binstar":{"package_id":"63c9f239edf45d7c2e2f4f0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ca752237e58f3943f190a19eb809493fd21204c219ebdc58a0b747fe12e64f3"},"ros-noetic-message-filters-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575107423,"md5":"0dce80c99a7ec8f3495b07a817fe259b","name":"ros-noetic-message-filters","requires":[],"size":49213,"version":"1.16.0","binstar":{"package_id":"63c9f239edf45d7c2e2f4f0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55c149bae7fbf6fd0063c275c0097052a53ec11092f3976470c7df0aed2ee3fc"},"ros-noetic-realsense2-description-2.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674355491473,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"33f47866897fcf51e53afb301c885ad3","name":"ros-noetic-realsense2-description","requires":[],"size":21689648,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c2f3ae3516cab393377e2e723a85ba848940811a5400cc3b98b10ccc440b1a6"},"ros-noetic-realsense2-description-2.3.2-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"subdir":"osx-64","timestamp":1693382236269,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py39h00b06ca_19","md5":"bdb574c680fa31e3f3bfd1df9f462086","name":"ros-noetic-realsense2-description","requires":[],"size":21674958,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"313b0a475e5d81f3f166a83e45a52888a2948809feef23b3e32d8cb0873e46f7"},"ros-noetic-realsense2-description-2.3.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-xacro"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576516083,"md5":"edb917fbb5dae5c67430faeeaee552be","name":"ros-noetic-realsense2-description","requires":[],"size":21821138,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"101c247eab473b78f129f7355a0dd7decf9fdaa8aa6dca5d7c74938700b1dc70"},"ros-noetic-moveit-resources-prbt-support-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674383644541,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9ae6fa7fb60bd92560d53a678c4451c6","name":"ros-noetic-moveit-resources-prbt-support","requires":[],"size":1083456,"version":"0.8.2","binstar":{"package_id":"63ca0b84c37c80a75b525288","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fbbbe04b76384ff5ed819c4ba77dc4ad02dd155693dc668a145435a2b97a228"},"ros-noetic-moveit-resources-prbt-support-0.8.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-xacro"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706672246453,"md5":"970c9be82459c1ff4712a17ccb88130b","name":"ros-noetic-moveit-resources-prbt-support","requires":[],"size":1082099,"version":"0.8.3","binstar":{"package_id":"63ca0b84c37c80a75b525288","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8906e233cc26e9fbab781c835aa57fe8a2738364bacc63b3e2c6621631f02445"},"ros-noetic-nodelet-tutorial-math-0.2.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674275942612,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8e216d98e8608076b168c1cf57e871a1","name":"ros-noetic-nodelet-tutorial-math","requires":[],"size":34627,"version":"0.2.0","binstar":{"package_id":"63ca0b85d0e8c095e23995ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a98b59793a01ac8e30d734ac55535219ce679311433826419c200b35b6203422"},"ros-noetic-nodelet-tutorial-math-0.2.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574997326,"md5":"18b3ca26471ff5e2e5b52efc37e9f7fc","name":"ros-noetic-nodelet-tutorial-math","requires":[],"size":35217,"version":"0.2.0","binstar":{"package_id":"63ca0b85d0e8c095e23995ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4e700b12b6f7a21bfed7541a209629c9d41921afd1eb8cf3c4ed40dc1d40bac"},"ros-noetic-franka-description-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674383714438,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"094c199abb0f6976adf564a09bfbf6b9","name":"ros-noetic-franka-description","requires":[],"size":3811332,"version":"0.10.1","binstar":{"package_id":"63ca0b875a31eb90f6b3597c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55881762b53924d49f4fee327081ce420f9b8336c88b6b695e5613712531d72f"},"ros-noetic-velodyne-description-1.0.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674355419316,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0aea1117d486033caab0115adddb739a","name":"ros-noetic-velodyne-description","requires":[],"size":302758,"version":"1.0.13","binstar":{"package_id":"63ca0b8868b198bb959f153d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"447a70afbf549a98790f4128c4b57dcf84456987570315a5d9882b5c4869ce41"},"ros-noetic-velodyne-description-1.0.13-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576428936,"md5":"e54fe01b19ef3d262457005eeb9671f8","name":"ros-noetic-velodyne-description","requires":[],"size":304350,"version":"1.0.13","binstar":{"package_id":"63ca0b8868b198bb959f153d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"606eaeca48af594924bcd244cfe847488e0e3b3d6f447f8716acb37c9c51bbdb"},"ros-noetic-turtlebot3-teleop-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674185592320,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"61f02852683e58eaa0163da995c07016","name":"ros-noetic-turtlebot3-teleop","requires":[],"size":14234,"version":"1.2.5","binstar":{"package_id":"63ca0d065a31eb90f6b3d898","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca04f135f4ae4c4fd5cf604b57dc3715dd51b86ecde23b34e4dcc837ae040134"},"ros-noetic-turtlebot3-teleop-1.2.5-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706532551823,"md5":"613915bafb492558ac82e1ab6430cf4c","name":"ros-noetic-turtlebot3-teleop","requires":[],"size":15040,"version":"1.2.5","binstar":{"package_id":"63ca0d065a31eb90f6b3d898","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"130a5205c0e5c606bba2b7bad9a7647984a38e660e8fadee3c429db48c84fb61"},"ros-noetic-class-loader-0.5.0-py39haa7efca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39haa7efca_17","timestamp":1674270992836,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cc3857fd534b5b7dc0c9d0bca0280e6b","name":"ros-noetic-class-loader","requires":[],"size":63984,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12ff18c8c714759fb43c8a7fa7a84d6c6375a55b09ecd1f21f00334af6f69f87"},"ros-noetic-class-loader-0.5.0-py311hc824410_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hc824410_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526497078,"md5":"d552c781b9d01c392e5b897fa5c41437","name":"ros-noetic-class-loader","requires":[],"size":64530,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"167421c1d3d5cfe7bf0ea42a041888e5dca3e02513ef76847c2efa65408fbfd5"},"ros-noetic-rosbag-1.15.15-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pycryptodome","pycryptodomex","python","python-gnupg","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp","rospkg"],"build":"py39h76d4aab_17","timestamp":1674330207962,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ce8b2836077d1405728cb8c7efe6e614","name":"ros-noetic-rosbag","requires":[],"size":618714,"version":"1.15.15","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ed57edcf4c638b63ebbbe904d450c0f5525834903cd7e518e721738a09c25c6"},"ros-noetic-rosbag-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","pycryptodome","pycryptodomex","python","python-gnupg","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706671860326,"md5":"ee1d620474e78053477a3017ef7de7ac","name":"ros-noetic-rosbag","requires":[],"size":622870,"version":"1.16.0","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d566420996af62a93d073b0ddec7cf39f2d9a69f9ec4a0da0170695243a8b1a"},"ros-noetic-diagnostic-aggregator-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-diagnostic-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-xmlrpcpp"],"build":"py39h00b06ca_17","timestamp":1674383836073,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"514889250bd1a8fb1fe02b8a3c476047","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":345150,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7eb4b78f26fc394f8d8537ec95548b391e668ac571544bbc8a8d390a3cbe7d46"},"ros-noetic-diagnostic-aggregator-1.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-diagnostic-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-xmlrpcpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574945333,"md5":"10fa4b981bfed5fb09e3405bcb51a3ab","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":348923,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cebaebf889cfb6880557d0f397ffd1ff83044181da670bfa23f088f17051736c"},"ros-noetic-diagnostic-updater-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674383767940,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"98906c7258de42b9ffaf4b0aaacd8e39","name":"ros-noetic-diagnostic-updater","requires":[],"size":65308,"version":"1.11.0","binstar":{"package_id":"63ca19745a31eb90f6b81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4b3ee07957491cd6fd09787f82ff51bf5001ec9d0df38af97c5a199a3b786f2"},"ros-noetic-diagnostic-updater-1.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-roscpp","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575072902,"md5":"348fe513b2487ab97a5ed8cfe1e293f5","name":"ros-noetic-diagnostic-updater","requires":[],"size":66820,"version":"1.11.0","binstar":{"package_id":"63ca19745a31eb90f6b81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35dc4b019769b68af39cee16155e3cfb0052cc78c3540fa771a0cdf0aaffdf1f"},"ros-noetic-kdl-parser-1.14.2-py39h729e997_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-urdf","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom_headers"],"build":"py39h729e997_17","timestamp":1674330314669,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c4e7104e4e07daec61a59a44f3a64fc2","name":"ros-noetic-kdl-parser","requires":[],"size":27029,"version":"1.14.2","binstar":{"package_id":"63ca197614201bfa453812c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff5bffbdba54d4bcb7a6a901f54add4261edf3f6225e4a7be9c4fc5ba544718c"},"ros-noetic-kdl-parser-1.14.2-py311h0f7ea6c_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h0f7ea6c_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosconsole","ros-noetic-urdf","tinyxml","tinyxml2 >=10.0.0,<11.0a0","urdfdom_headers"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706671964515,"md5":"5a82f1f09e574aca96b9b64fb6a61f3d","name":"ros-noetic-kdl-parser","requires":[],"size":27723,"version":"1.14.2","binstar":{"package_id":"63ca197614201bfa453812c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c2b1dff630e99e36eb11a6324d0f29af90ed789e3d0a40d93b9c1479b2de339"},"ros-noetic-jackal-navigation-0.8.5-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-amcl","ros-noetic-gmapping","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h5cf4051_3","timestamp":1674461015367,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e2840fd1a6af3fc7a31b8f91a5362d27","name":"ros-noetic-jackal-navigation","requires":[],"size":37018,"version":"0.8.5","binstar":{"package_id":"63ca2115d0e8c095e2427b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d74fcd938aae5f3c3146a5f421500dbb564ebe115a22cb15f3dceea3583587bf"},"ros-noetic-rostopic-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674355457399,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"761555afa09862f3f5c81f9bee3fa7e0","name":"ros-noetic-rostopic","requires":[],"size":88765,"version":"1.15.15","binstar":{"package_id":"63cb6b58a64974fd09f761ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7000e87a9252efbc3aae283be76c90bbd582b4eae4fc6de05f45bdf31f5bdeb"},"ros-noetic-rostopic-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-rospy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673244507,"md5":"a110eaaf6445590c946b653ed2cb41a6","name":"ros-noetic-rostopic","requires":[],"size":95769,"version":"1.16.0","binstar":{"package_id":"63cb6b58a64974fd09f761ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9859b438b4ea76b690fa541084ed4e81fc1696e707e7417c435c4908cab70a6"},"ros-noetic-rosmsg-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-roslib","rospkg"],"build":"py39h00b06ca_17","timestamp":1674355538189,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2d9bf9155ef75dcdb246b94ebe5fed59","name":"ros-noetic-rosmsg","requires":[],"size":43800,"version":"1.15.15","binstar":{"package_id":"63cb6d178ff1ad27426d708c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e784286407c9ab7c14ba72749b2e34979b87988b34c99cde8dc676bd886084e"},"ros-noetic-rosmsg-1.16.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673352876,"md5":"fb4b31ac4842728e39b8a1e90ff48477","name":"ros-noetic-rosmsg","requires":[],"size":46243,"version":"1.16.0","binstar":{"package_id":"63cb6d178ff1ad27426d708c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b23ff4212583be40be46b98cdde88bc86ee82d5944cbfcca53b8b1ce7c7337fa"},"ros-noetic-sensor-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674355641671,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c10a99fea3bebdf333b6902785d00b01","name":"ros-noetic-sensor-msgs","requires":[],"size":225312,"version":"1.13.1","binstar":{"package_id":"63cb6d1ac37c80a75b2b480e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2dc8f30da4214a73aab68093aedf1359dc30fddfacafb884817ed45157ba6757"},"ros-noetic-sensor-msgs-1.13.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673468945,"md5":"889d9d50675ac9ff2028dd519783da1b","name":"ros-noetic-sensor-msgs","requires":[],"size":228859,"version":"1.13.1","binstar":{"package_id":"63cb6d1ac37c80a75b2b480e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47ffe3c940133636cece29a980d53a19aaee3751a1ea10c34a9d8310935fc460"},"ros-noetic-self-test-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674414195258,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ad4282f4805fb489bf848a19308a8372","name":"ros-noetic-self-test","requires":[],"size":179076,"version":"1.11.0","binstar":{"package_id":"63cb6d1adbdf733521e9130f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76b4a19480fcbb85d2ef9f248c4a2478e3e18c709dd815a1e4ffbc0842495cae"},"ros-noetic-self-test-1.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576264090,"md5":"7fe7b743558ec94405a48415ff5cb57f","name":"ros-noetic-self-test","requires":[],"size":178178,"version":"1.11.0","binstar":{"package_id":"63cb6d1adbdf733521e9130f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f044dded2d6749c64d0fcce195698657e8b35ff4dd7ac30995e51ff8cb1e44f"},"ros-noetic-jackal-control-0.8.5-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-interactive-marker-twist-server","ros-noetic-joint-state-controller","ros-noetic-joy","ros-noetic-robot-localization","ros-noetic-teleop-twist-joy","ros-noetic-topic-tools","ros-noetic-twist-mux"],"build":"py39h5cf4051_3","timestamp":1674429312392,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3119a721a6c2329db06cf232a06bc589","name":"ros-noetic-jackal-control","requires":[],"size":14336,"version":"0.8.5","binstar":{"package_id":"63cb6d1bedf45d7c2e7b924c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe8919b32a8b733c27cd2204eeb7345db35cbf8e85715b13c14857afe18ba8ed"},"ros-noetic-filters-1.9.2-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39h76d4aab_17","timestamp":1674275958954,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8e17a914ac2b9c0d4003d9b375d747d7","name":"ros-noetic-filters","requires":[],"size":75044,"version":"1.9.2","binstar":{"package_id":"63cb6d1c2ff78d332e290f80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6363718a2940fd6336e009e5e80fc858724d9a08fa81875af8298c926afbffb9"},"ros-noetic-filters-1.9.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575199240,"md5":"0b24baa2d11bf3dd8ca27d98da9e07da","name":"ros-noetic-filters","requires":[],"size":76627,"version":"1.9.2","binstar":{"package_id":"63cb6d1c2ff78d332e290f80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c16a9a384bcd81db0cc3d5648c0eb77d31c6b5223150d24738b255d862c8261b"},"ros-noetic-diagnostic-analysis-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rosbag","ros-noetic-roslib"],"build":"py39h00b06ca_17","timestamp":1674355358191,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"35ca47fef906f6ecd717681a44aaedbc","name":"ros-noetic-diagnostic-analysis","requires":[],"size":25509,"version":"1.11.0","binstar":{"package_id":"63cb6d1cd0e8c095e2091b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48268fa99e61718a76783dd33ca6c7d3f68c9f29750f8c3fe829bf19dfef7fe2"},"ros-noetic-diagnostic-analysis-1.11.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rosbag","ros-noetic-roslib"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673569929,"md5":"98e002a17147eff4623f13b503b66d09","name":"ros-noetic-diagnostic-analysis","requires":[],"size":26825,"version":"1.11.0","binstar":{"package_id":"63cb6d1cd0e8c095e2091b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1809f8b7002ffb0dc809364800fd1836ce67e75d3a052975645071263d3b6a90"},"ros-noetic-ros-tutorials-0.10.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp-tutorials","ros-noetic-rospy-tutorials","ros-noetic-turtlesim"],"build":"py39h00b06ca_17","timestamp":1674355697974,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"426e948a1ed31e9b1f80c5a89f1ebdaf","name":"ros-noetic-ros-tutorials","requires":[],"size":8302,"version":"0.10.2","binstar":{"package_id":"63cb6d1d912363225b376ac3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13ba06153b22cf8b3c381e52ee8585c44f3db8b7c9e78373db19b2b63fbe447c"},"ros-noetic-ros-tutorials-0.10.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp-tutorials","ros-noetic-rospy-tutorials","ros-noetic-turtlesim"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576164491,"md5":"0737ee6094964b34f4e3adc74f86a06d","name":"ros-noetic-ros-tutorials","requires":[],"size":9042,"version":"0.10.2","binstar":{"package_id":"63cb6d1d912363225b376ac3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86940a388a347ad3da5fb1f5c60ca6581a3f1430ad868b85845fd025dcf7012a"},"ros-noetic-boost-sml-0.1.2-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roslint"],"build":"py39h20fafc8_17","timestamp":1674276062100,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9c84ba3d418dc4ca8f48f04d6709b001","name":"ros-noetic-boost-sml","requires":[],"size":105803,"version":"0.1.2","binstar":{"package_id":"63cb6d40cd65eb0e1413a53a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17810be0609f49b24eb57ca1030a0b97b9ba15fbf32ab48156309b56788d2108"},"ros-noetic-rosservice-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosgraph","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674383613665,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e9311d7b8d68e4ccff36ccd39b53d6bb","name":"ros-noetic-rosservice","requires":[],"size":36511,"version":"1.15.15","binstar":{"package_id":"63cb6e6920c05f5e39391f10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3745693a829a13fd382276735070a0b46b9df8bf79d57148f937ecd224fd8a2c"},"ros-noetic-joint-state-publisher-1.15.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674383910234,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bb93aabf6a41d8f211bd10d49bcb500a","name":"ros-noetic-joint-state-publisher","requires":[],"size":24123,"version":"1.15.1","binstar":{"package_id":"63cb6e6a2ff78d332e294985","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"622ed96e907aadd0b19db5906783bf9fcf73ad36c9b75bdc3fec91b9c43bfb3d"},"ros-noetic-map-msgs-1.14.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674383695936,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cd921e0c3eb4d5eff0a28d7a99f1fa46","name":"ros-noetic-map-msgs","requires":[],"size":81202,"version":"1.14.1","binstar":{"package_id":"63cb6e6c5a31eb90f65539e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2260e1ac385f53e992fb78acdca83b9404929814b34f151110919ffab31b4407"},"ros-noetic-rosnode-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-rostopic"],"build":"py39h00b06ca_17","timestamp":1674383531507,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e9872c8d113464834e0448cef4484793","name":"ros-noetic-rosnode","requires":[],"size":40835,"version":"1.15.15","binstar":{"package_id":"63cb6e6dc37c80a75b2bce42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6518c41235fcf916dbacffbfa288ee8b0f1e5a409d93aa7f8236e63a01c94d4"},"ros-noetic-image-transport-1.12.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674383832839,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d1b19eb603056600b6a43489c5b19e3b","name":"ros-noetic-image-transport","requires":[],"size":261443,"version":"1.12.0","binstar":{"package_id":"63cb6e6ec37c80a75b2bce48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"094ae0c240ea7162e1e22d6c03047206e6179761e26c3ee5c63231562195e680"},"ros-noetic-rqt-topic-0.4.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-std-msgs","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383590331,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"488013b6ba05d82c7698bd6f15d5d763","name":"ros-noetic-rqt-topic","requires":[],"size":37260,"version":"0.4.13","binstar":{"package_id":"63cbbed3d0e8c095e22e70cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df185565f70a3324324c7209a66e056b02cdd7977970cd700f1bb634deb3c1d8"},"ros-noetic-rqt-robot-steering-0.5.12-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674383564026,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"80f1a1b51db398e2e8913c37d64cba4c","name":"ros-noetic-rqt-robot-steering","requires":[],"size":25468,"version":"0.5.12","binstar":{"package_id":"63cbbed468b198bb95ec6cc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faf00a16605c0951e958b56146cc680e57519b446f3fd23e283a7bd687a220bb"},"ros-noetic-joint-state-publisher-gui-1.15.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-python-qt-binding","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674384932480,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"53738e935bd1b808e0291a31fe88d13b","name":"ros-noetic-joint-state-publisher-gui","requires":[],"size":22437,"version":"1.15.1","binstar":{"package_id":"63cbbf54be293b9e161bb6ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2957aa33e795787d27e27b0379408572521648584222028ea318e595099fec55"},"ros-noetic-dynamic-reconfigure-1.7.3-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39h76d4aab_17","timestamp":1674385187996,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"08dfcf46673afa6c4b0b72e478a11fe8","name":"ros-noetic-dynamic-reconfigure","requires":[],"size":157987,"version":"1.7.3","binstar":{"package_id":"63cbbf5568b198bb95ec776c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40b4e15bbba22cd3191d392131e9685d60ad9fc1c6708187dc9905f985eafc44"},"ros-noetic-actionlib-1.14.0-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h76d4aab_17","timestamp":1674384771995,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cc93b198b5dacf3b2350f1341d3cf585","name":"ros-noetic-actionlib","requires":[],"size":215176,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0471f26981f92aeebbbfcbec7732080164788481fa961f3e8f3e045da5122c5"},"ros-noetic-actionlib-1.14.0-py39h76d4aab_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h76d4aab_18","timestamp":1678494416713,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8aa3ff671ce304c78f032ce2e2d19898","name":"ros-noetic-actionlib","requires":[],"size":210522,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c9854b1332a0788b56eae601990b5402a8712c1c54fb6a2e7c1aa2833a75225"},"ros-noetic-rqt-logger-level-0.4.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674385260857,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"19292ad1928446beb3e3f546018b0186","name":"ros-noetic-rqt-logger-level","requires":[],"size":25221,"version":"0.4.11","binstar":{"package_id":"63cbbf57c37c80a75b479e76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"084b4aff7ebb3471caa6fb898d027be8e05c3b76ababe2fe9b6573ceb4330960"},"ros-noetic-roswtf-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rosservice","rospkg"],"build":"py39h00b06ca_17","timestamp":1674384864673,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"15c8babe6868d34d5f92cfcda1d2a3e8","name":"ros-noetic-roswtf","requires":[],"size":79626,"version":"1.15.15","binstar":{"package_id":"63cbbf58d0e8c095e22e96ed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"574f28ba5d868c354a390ace5d8bad92ae05fb191999b2d3b01a22af5618c22f"},"ros-noetic-rosserial-server-0.9.2-py39h76d4aab_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosserial-msgs","ros-noetic-std-msgs","ros-noetic-topic-tools"],"build":"py39h76d4aab_17","timestamp":1674330240144,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7eabd3c849c7d61b12b0554c786df046","name":"ros-noetic-rosserial-server","requires":[],"size":326234,"version":"0.9.2","binstar":{"package_id":"63cbbf8c989160afcf1e1ddf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9abb60105d092c4656c7334e19a1ff5eaae2d3f3909ded361721180c02a13029"},"ros-noetic-map-server-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","bullet","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf2","sdl >=1.2.60,<1.3.0a0","sdl_image >=1.2.12,<1.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h00b06ca_17","timestamp":1674330643585,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6283e058c6652b637598770982c0a93b","name":"ros-noetic-map-server","requires":[],"size":85065,"version":"1.17.3","binstar":{"package_id":"63cbc0f18ff1ad2742896865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56d4cbc5f51b66f75e7ee85a22dc9df57a17fbfcabd6b9a7db83141a408c1359"},"ros-noetic-map-server-1.17.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","bullet","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf2","sdl >=1.2.68,<1.3.0a0","sdl_image >=1.2.12,<1.3.0a0","yaml-cpp >=0.8.0,<0.9.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574795399,"md5":"7accf761304969aa1e1331cbc16c7d6e","name":"ros-noetic-map-server","requires":[],"size":85942,"version":"1.17.3","binstar":{"package_id":"63cbc0f18ff1ad2742896865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb9fc1016e518b025f955c555f70f224bcde31ed94b2ac378acf6e5804ddb246"},"ros-noetic-srdfdom-0.6.3-py39h0465989_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-urdfdom-py","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h0465989_17","timestamp":1674330496259,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7179edcdebfcf565d6acfc2f8d4bf79a","name":"ros-noetic-srdfdom","requires":[],"size":77865,"version":"0.6.3","binstar":{"package_id":"63cbc0fddbdf73352109dc3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1a81f660fb4d97f51e93e2de517381acedf0bd9bba9a2a9f8395cc8399a74fe"},"ros-noetic-srdfdom-0.6.4-py311hb45798f_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311hb45798f_20","build_number":20,"depends":["__osx >=10.14","boost","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-urdf","ros-noetic-urdfdom-py","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706672179006,"md5":"87e4bb90665a017aea9edc9fa397fdd3","name":"ros-noetic-srdfdom","requires":[],"size":82070,"version":"0.6.4","binstar":{"package_id":"63cbc0fddbdf73352109dc3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ce8c6b730f109436ce30fdb8e27651456dcc8682d1a57633f25faa546c439ce"},"ros-noetic-qt-gui-cpp-0.4.2-py39h5cf4051_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11","xorg-libxext"],"build":"py39h5cf4051_17","timestamp":1674383071962,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f90bd72d36adfa4fb8aacf66eb352e95","name":"ros-noetic-qt-gui-cpp","requires":[],"size":173233,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ad16bfd4a95da909b3c9b3e52db622f3bf88bdc61bce9df31e4d5e0ed568a9e"},"ros-noetic-qt-gui-cpp-0.4.2-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h00b06ca_18","timestamp":1681948465806,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"26e1155b0838a67df4cf52fde15517f4","name":"ros-noetic-qt-gui-cpp","requires":[],"size":179451,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2de61774c61f5d536aadb0e12503c1d87542a320846672a4c0ef4b2a287f58d8"},"ros-noetic-qt-gui-cpp-0.4.2-py311h2e3875a_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h2e3875a_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531813855,"md5":"44a269050ce023bf881d397eabb7822d","name":"ros-noetic-qt-gui-cpp","requires":[],"size":178704,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"554bb6cf38a55afa2aa31699a343075c3be10a67a95d728f0d0e55bf0c4fa141"},"ros-noetic-smach-ros-2.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39h00b06ca_17","timestamp":1674414318498,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ce631113a13fbc1755a386a88f8d5bc4","name":"ros-noetic-smach-ros","requires":[],"size":55581,"version":"2.5.0","binstar":{"package_id":"63cca29ab23346582c522620","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"daada40fda1ee707d8b9a3bb69a0334f05bdca66077195578b0b22dde2da7019"},"ros-noetic-turtle-actionlib-0.2.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-angles","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-turtlesim"],"build":"py39h00b06ca_17","timestamp":1674414324580,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6a9151174432ebf6b521f7c6aa7ed008","name":"ros-noetic-turtle-actionlib","requires":[],"size":231105,"version":"0.2.0","binstar":{"package_id":"63cca29c5a31eb90f6a03908","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf66ac7f1376a0ef4b43b0feed893e47376d020a94a72a635dbbeaaacaf4b970"},"ros-noetic-rqt-py-common-0.5.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-genpy","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rostopic"],"build":"py39h00b06ca_17","timestamp":1674413935525,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f4112a7c764f2534b7b7e59a223f82dd","name":"ros-noetic-rqt-py-common","requires":[],"size":85125,"version":"0.5.3","binstar":{"package_id":"63cca33b2ff78d332e770234","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"213720c535b7f89ef567bd02214ac65c3bbeff5d9cb1ebc9e5eb278073b7e277"},"ros-noetic-nodelet-topic-tools-1.10.2-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h20fafc8_17","timestamp":1674414017945,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7141237fc5401e9dababcf0dd86c58cf","name":"ros-noetic-nodelet-topic-tools","requires":[],"size":23564,"version":"1.10.2","binstar":{"package_id":"63cca33c8ff1ad2742e7bdba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47c430fdd3d42bdb046809ec57b7000dda511ab76c6c8913998a353bcb00645b"},"ros-noetic-cv-bridge-1.16.2-py39h5f50db1_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h5f50db1_17","timestamp":1674384094514,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"76108d87a93dd396fada142a83f35cab","name":"ros-noetic-cv-bridge","requires":[],"size":166249,"version":"1.16.2","binstar":{"package_id":"63cca33ecd65eb0e146473d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60da55b9f2ea16f2f4931dccdb55b91deeb3be451bcbc3d099f2a6ff4d2ef330"},"ros-noetic-tf2-ros-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-xmlrpcpp"],"build":"py39h00b06ca_17","timestamp":1674413817473,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e208795a5fb9e906c045399bbea21ebd","name":"ros-noetic-tf2-ros","requires":[],"size":274078,"version":"0.7.6","binstar":{"package_id":"63cca33fc37c80a75ba5cc0b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b002fcc22e302787506d2baa57fc14007c8bed7268b4e903e4b03ba89f1dc33"},"ros-noetic-stereo-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674383622288,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cfe67ec4d5dfe0746f32aa875c304709","name":"ros-noetic-stereo-msgs","requires":[],"size":31723,"version":"1.13.1","binstar":{"package_id":"63cca3402ff78d332e77029c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4be92d0c18ad6cbe1541c5ff9a51cbb06b52b71dd5666943e51625ca75a57d75"},"ros-noetic-turtlebot3-description-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674355583092,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"977536284c005f7e5ee603bb940bc0bc","name":"ros-noetic-turtlebot3-description","requires":[],"size":5641555,"version":"1.2.5","binstar":{"package_id":"63cca406a64974fd0910aac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b06eb167250d43f4ad97dacd644a7c6db1cb806d389cae5b5db862aedcbfc20e"},"ros-noetic-turtlebot3-description-1.2.5-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576354176,"md5":"88ca48e153b51528c4a866767aad0a8f","name":"ros-noetic-turtlebot3-description","requires":[],"size":5656128,"version":"1.2.5","binstar":{"package_id":"63cca406a64974fd0910aac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44d616d19017e0468a4ca1ab613fc19db4acf9176abefd8da9151bab192da673"},"ros-noetic-rqt-gui-cpp-0.5.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-qt-gui","ros-noetic-qt-gui-cpp","ros-noetic-roscpp","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674384003173,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4a98a05220b0701f92dc438a43f26809","name":"ros-noetic-rqt-gui-cpp","requires":[],"size":93624,"version":"0.5.3","binstar":{"package_id":"63cca8862ff78d332e78663e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86ac72f260f96889ef678835e4fcc16c27e7963d01f31bc9fe6d0b7ceba265d3"},"ros-noetic-rqt-gui-cpp-0.5.3-py311h2e3875a_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h2e3875a_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-nodelet","ros-noetic-qt-gui","ros-noetic-qt-gui-cpp","ros-noetic-roscpp","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706575403267,"md5":"4ea27c74d489653972b9adf93ff31ce7","name":"ros-noetic-rqt-gui-cpp","requires":[],"size":95121,"version":"0.5.3","binstar":{"package_id":"63cca8862ff78d332e78663e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9259b50d7f39d6a924625a777981bdce65d4df5522fe577e7041d8e890acbeb"},"ros-noetic-joint-limits-interface-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674383514960,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ca8390fbe215a4459215535ab677e503","name":"ros-noetic-joint-limits-interface","requires":[],"size":18228,"version":"0.19.6","binstar":{"package_id":"63cca888c37c80a75ba7d25f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a35cb89be8f2c95d2fa290977979c2539b4a0f90f16b9102aa5d700f443e0eb4"},"ros-noetic-joint-limits-interface-0.20.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp","ros-noetic-urdf"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706576140569,"md5":"2889120adf455b7194686c079a0e2c74","name":"ros-noetic-joint-limits-interface","requires":[],"size":19012,"version":"0.20.0","binstar":{"package_id":"63cca888c37c80a75ba7d25f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"347a2c49ab8dd7ee362f339fd86c17144ae916dc205b7a799d889f6d29b474f4"},"ros-noetic-gps-common-0.3.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674384376143,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"852f982e35e72b7aa5ea91e337a80081","name":"ros-noetic-gps-common","requires":[],"size":94404,"version":"0.3.3","binstar":{"package_id":"63ccac48d0e8c095e2a303b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ff146f12572eaed6a909cf749afca49c95fd56423c4f11fdd5593e1eed985c0"},"ros-noetic-gps-common-0.3.4-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673981779,"md5":"45a98c2f644652d45eff808345d68a35","name":"ros-noetic-gps-common","requires":[],"size":96000,"version":"0.3.4","binstar":{"package_id":"63ccac48d0e8c095e2a303b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2300230911bcdfb7b9117800ea3d223a4ee7b453a23af750e7d1e42817f7249b"},"ros-noetic-hls-lfcd-lds-driver-1.1.2-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h20fafc8_17","timestamp":1674384246035,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4c9dd2a7bde899bb3481fab0f8f716ae","name":"ros-noetic-hls-lfcd-lds-driver","requires":[],"size":85832,"version":"1.1.2","binstar":{"package_id":"63ccac4a59c09271a4f280e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f5da97691275698bca76a647ae4de7dfac6a2bf0bb50c19ffa81ada1e4ee531"},"ros-noetic-lms1xx-0.3.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674384111372,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ad5dc93e68d696bda346af368f0c2277","name":"ros-noetic-lms1xx","requires":[],"size":239904,"version":"0.3.0","binstar":{"package_id":"63ccac4dedf45d7c2e922c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b67bc3ac2136141c85d9e4c5b93b8ba3dffdcf4b8842454bd04c6c61f7a76552"},"ros-noetic-pcl-msgs-0.3.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674383697887,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"41997bf28f1955d4457a299bbe377361","name":"ros-noetic-pcl-msgs","requires":[],"size":49487,"version":"0.3.0","binstar":{"package_id":"63ccaca4a64974fd09115016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99af56f255b65a56dd0cbaf0ae0a9a90f8935662971ee41f60c91da3ab27c0c5"},"ros-noetic-joy-1.15.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674385436341,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"623b9ee317f6bd08123a2410feb3f68c","name":"ros-noetic-joy","requires":[],"size":18204,"version":"1.15.1","binstar":{"package_id":"63ccaca70273ee116abaf554","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53dd59fa6f83c50fd1a1e15958e3d211b63b061c6afddb5287c4a426b9dd6446"},"ros-noetic-gazebo-msgs-2.9.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-trajectory-msgs"],"build":"py39h00b06ca_17","timestamp":1674383634858,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2a7a59a9925e3c75a6d30910c3e6741c","name":"ros-noetic-gazebo-msgs","requires":[],"size":232111,"version":"2.9.2","binstar":{"package_id":"63ccad3fcd65eb0e1466d326","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4abf60b8158da90639429626f8300b542ec670f34fd1e1e07a281ced168a6aaa"},"ros-noetic-object-recognition-msgs-0.4.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674383533854,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"483f9bfa945d99b61d6ee72bd8a0f7ce","name":"ros-noetic-object-recognition-msgs","requires":[],"size":134526,"version":"0.4.2","binstar":{"package_id":"63ccad40b23346582c53a981","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f41cdf35fa9a94e3fe9ec1a065af3a10133ead752efe69be5466f24faa4ceeb"},"ros-noetic-image-geometry-1.16.2-py39h4a9277a_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h4a9277a_17","timestamp":1674383916055,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fae80223a5078986f2362a7a13bf7729","name":"ros-noetic-image-geometry","requires":[],"size":42358,"version":"1.16.2","binstar":{"package_id":"63ccad41d0e8c095e2a34205","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b22b429104a6eb31cef82fc051621170cc058561c9153b8cf5fa665130864f09"},"ros-noetic-camera-calibration-parsers-1.12.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h20fafc8_17","timestamp":1674383551411,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"55a447a114edbe7279e72a9754eda4ea","name":"ros-noetic-camera-calibration-parsers","requires":[],"size":81381,"version":"1.12.0","binstar":{"package_id":"63ccad42989160afcf3d599b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1bb404aa3674c561740f441614482de273b20a2a8addd0f92985f9679870758"},"ros-noetic-teleop-twist-joy-0.1.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-joy","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674414148070,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6b5f9f70f3f194c2cad4e25e40c30f08","name":"ros-noetic-teleop-twist-joy","requires":[],"size":41184,"version":"0.1.3","binstar":{"package_id":"63ccb0d5dbdf733521734088","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ca46293c813230594e8a532949b93ec2252fd284d2c00aad9802303f05af181"},"ros-noetic-vision-opencv-1.16.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry"],"build":"py39h00b06ca_17","timestamp":1674385703218,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d6da63a7c85d4761e8cd01d655421141","name":"ros-noetic-vision-opencv","requires":[],"size":8506,"version":"1.16.2","binstar":{"package_id":"63ccb0d75a31eb90f6a3625d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"381c2a0e27c0d8dc7ede1f2a9533a6782ed284df577cd5e5a19ce69a0f0255da"},"ros-noetic-camera-calibration-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry","ros-noetic-message-filters","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-srvs"],"build":"py39h00b06ca_17","timestamp":1674385623821,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cade11f9d2098417e5dce3a1d8d53a32","name":"ros-noetic-camera-calibration","requires":[],"size":102360,"version":"1.17.0","binstar":{"package_id":"63ccb0da2ff78d332e7a1dc0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dde0a9b363d770e9681558a8988e6290db7ec22d51363609cdf1ccaea9da7671"},"ros-noetic-camera-info-manager-1.12.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-image-transport","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39h20fafc8_17","timestamp":1674385498993,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d4c212e5d5190b557aa4c32cfc16c73b","name":"ros-noetic-camera-info-manager","requires":[],"size":48169,"version":"1.12.0","binstar":{"package_id":"63ccb100912363225b8e225c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd7df7806bd317a51df2dad42634012603a087cb929d65560063db4f58448dcb"},"ros-noetic-pcl-conversions-1.7.4-py39he89d370_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","xorg-libx11","xorg-libxext"],"build":"py39he89d370_17","timestamp":1674385619411,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"17af49842e9564871da8ac8564bed6cf","name":"ros-noetic-pcl-conversions","requires":[],"size":18124,"version":"1.7.4","binstar":{"package_id":"63ccb100cd65eb0e1467878f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f285f149232261dc83809b890f2811a7f2050dbb63befff607c1f5a215e7643"},"ros-noetic-rqt-bag-0.5.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosbag","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674385397959,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4ab9a6721a4b86ad66db84e90b62bd5b","name":"ros-noetic-rqt-bag","requires":[],"size":140478,"version":"0.5.1","binstar":{"package_id":"63ccb1015a31eb90f6a366b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57ba229b881470091c637dbc66e6544e24d351cff98767d6cfd7e14bffe9c7be"},"ros-noetic-controller-manager-msgs-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674385342675,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ef4d8d57131eaacf1d0706a61dd20d8e","name":"ros-noetic-controller-manager-msgs","requires":[],"size":86827,"version":"0.19.6","binstar":{"package_id":"63ccb10314201bfa458f919f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e456b392b6040314de9f3728adfd84977a2bc34648fcdc95e9701ca9ddf5b8f"},"ros-noetic-moveit-msgs-0.11.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-object-recognition-msgs","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39h00b06ca_17","timestamp":1674385066088,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"039c2671752905d49bcec13e8dbf8e04","name":"ros-noetic-moveit-msgs","requires":[],"size":2350532,"version":"0.11.4","binstar":{"package_id":"63ccb21759c09271a4f33cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"183fc90d3dc613e22e5136c8702c453c3552d25d316d9c4ead185f63340531ba"},"ros-noetic-executive-smach-2.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-smach-ros"],"build":"py39h00b06ca_17","timestamp":1674417409819,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"05d787076eff0a9525e0616a7e73f1c4","name":"ros-noetic-executive-smach","requires":[],"size":7938,"version":"2.5.0","binstar":{"package_id":"63cd1036912363225ba3b103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e601f8af2efe628aafa41edd793f572c9ff58652ec48adf287784ac4a90b2ea9"},"ros-noetic-rqt-service-caller-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39h00b06ca_17","timestamp":1674417001487,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"64fd0f263200a56bb8ada631cfc5a178","name":"ros-noetic-rqt-service-caller","requires":[],"size":29272,"version":"0.4.10","binstar":{"package_id":"63cd10c9912363225ba3c28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8691a0ab7913f1f1f67d5773e9f18795e0e811cc013c6b305f052c978417798c"},"ros-noetic-nodelet-core-1.10.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools"],"build":"py39h00b06ca_17","timestamp":1674416826689,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ddc40ba04872bb54ab2fb708aa2597bf","name":"ros-noetic-nodelet-core","requires":[],"size":7928,"version":"1.10.2","binstar":{"package_id":"63cd10cad0e8c095e2ca14ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"057142cd9721870960556254d04208e7c71465045daa77ff91543faf21205b78"},"ros-noetic-rqt-moveit-0.5.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-rqt-topic","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674416950596,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3ef4f46758a86f03154fca47c1d7e26","name":"ros-noetic-rqt-moveit","requires":[],"size":29633,"version":"0.5.10","binstar":{"package_id":"63cd10cbdbdf73352196d733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80108ede31a66bc0239aa2fa2b88be458227cbfa79b5aeda33a9c0791680bca3"},"ros-noetic-rqt-graph-0.4.14-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674413892649,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"93b296c50403688ef4421f4e87b1c70c","name":"ros-noetic-rqt-graph","requires":[],"size":64044,"version":"0.4.14","binstar":{"package_id":"63cd10cc989160afcf4833b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b672da8e88bf0c9c2a7f3e97eb17f35ffae0a953b037412c046317bc537d4aa5"},"ros-noetic-rqt-publisher-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39h00b06ca_17","timestamp":1674417056224,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2b73f4525d5ce8140adcfdfac92c31cb","name":"ros-noetic-rqt-publisher","requires":[],"size":42206,"version":"0.4.10","binstar":{"package_id":"63cd10ccdbdf73352196d766","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d57cb71d999ed7c653a2841992c65a74629d9460968681ddd9d51c2e18ce5ff"},"ros-noetic-tf-1.13.2-py39hfd1c926_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","graphviz >=6.0.2,<7.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roswtf","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39hfd1c926_17","timestamp":1674419593757,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bdcc916920a1ead18f6edffb1bb3ac13","name":"ros-noetic-tf","requires":[],"size":256071,"version":"1.13.2","binstar":{"package_id":"63cd10fccd65eb0e147f83eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4c51d6847180323ba5afaadb2ad4995becc140e5acca5ac38968d74f6ea832c"},"ros-noetic-rqt-console-0.4.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-logger-level","ros-noetic-rqt-py-common","rospkg"],"build":"py39h00b06ca_17","timestamp":1674419882335,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d0bc849e3fd49a4886742f073d05dc03","name":"ros-noetic-rqt-console","requires":[],"size":97088,"version":"0.4.11","binstar":{"package_id":"63cd10fd8ff1ad27420b3c5c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c39dce14755755e83b1088dfe07cff49b9e6e23d0cbb1ad0a1debced38729180"},"ros-noetic-tf2-kdl-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674419692179,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bf4be10ff84a14302680d0bb131f2568","name":"ros-noetic-tf2-kdl","requires":[],"size":20967,"version":"0.7.6","binstar":{"package_id":"63cd10fe5a31eb90f6b90d9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fe2c268f5bbfbec4b624e510b9857cf538e38f74331f561c9f39baf184adcff"},"ros-noetic-tf2-geometry-msgs-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674419374466,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a961f3ef1812ccdd533fac883ae62b03","name":"ros-noetic-tf2-geometry-msgs","requires":[],"size":21092,"version":"0.7.6","binstar":{"package_id":"63cd10ffdbdf73352196fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d987ce2b2c710796bdb335a1aa17719522295bda8c9a57376e1e81c8b750b898"},"ros-noetic-rqt-controller-manager-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39h00b06ca_17","timestamp":1674414184564,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"579531f720884a00efe3c4c46948cc63","name":"ros-noetic-rqt-controller-manager","requires":[],"size":52396,"version":"0.19.6","binstar":{"package_id":"63cd168d912363225ba55282","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dea4e3a3f8757960f0baa62dd64a05dd90a030cbe7345cd029d8444546d412e5"},"ros-noetic-controller-manager-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674414239103,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fbd96385c5f836e6a26ebaa0b22c56a2","name":"ros-noetic-controller-manager","requires":[],"size":140311,"version":"0.19.6","binstar":{"package_id":"63cd16bedbdf7335219a4f53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"476a1bb6bc3361b78fae35383f1e4145d54f75ae87bb9ff6490448e556ac013e"},"ros-noetic-realtime-tools-1.16.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674414117097,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"494e04c438968963513be18c9b9907c9","name":"ros-noetic-realtime-tools","requires":[],"size":21968,"version":"1.16.1","binstar":{"package_id":"63cd16c2912363225ba55506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1acad734200ba4998663adec2d61dcfc8b02c9e2000ac8625d5974d4f6f61590"},"ros-noetic-theora-image-transport-1.14.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674414066844,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9944f017d37b679802c737a7e25a5d10","name":"ros-noetic-theora-image-transport","requires":[],"size":160622,"version":"1.14.0","binstar":{"package_id":"63cd179e2e1172ba36a19dba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4756d56638291babecde2b425f2ce1e0c4962f522a137f3ed20c4ea27d3a665c"},"ros-noetic-compressed-depth-image-transport-1.14.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39h00b06ca_17","timestamp":1674414228578,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"27322f1edb04984ca6ae466647c59da5","name":"ros-noetic-compressed-depth-image-transport","requires":[],"size":122887,"version":"1.14.0","binstar":{"package_id":"63cd17a159c09271a4ffaab2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df794a5f4ae5e37ac33977ba456e39e9a26ecea827ef9f14ff0d951be35e8482"},"ros-noetic-rosbridge-library-0.11.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pillow","pymongo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674385533329,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"325af1033fc83e1413fcb9c295a638be","name":"ros-noetic-rosbridge-library","requires":[],"size":197966,"version":"0.11.16","binstar":{"package_id":"63cd17a3dbdf7335219aac44","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d8e795655bd6c8915f9f26dac3c5f2d938369e3b231e948e9511f7b23d92a7d"},"ros-noetic-polled-camera-1.12.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674414304476,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e3c7e135a9dc08439e2dd99060c610e9","name":"ros-noetic-polled-camera","requires":[],"size":64627,"version":"1.12.0","binstar":{"package_id":"63cd17a95a31eb90f6bacd9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b03feaba432d4c0a08872ead36968b7957b6929fad02d47cfb99fccc760c10af"},"ros-noetic-image-publisher-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674417012778,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"336c1e4bd2b5774e2904eb7a5d3f229b","name":"ros-noetic-image-publisher","requires":[],"size":97541,"version":"1.17.0","binstar":{"package_id":"63cd17abb23346582c6031ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6ef4dd5c7c3cf9567e8c686e87deb7a63e93509fd0a1ba5f19af2a8a5f3a8a5"},"ros-noetic-image-view-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674413870089,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9837df96c5daafa2c59688dedafa410b","name":"ros-noetic-image-view","requires":[],"size":337878,"version":"1.17.0","binstar":{"package_id":"63cd17ada21649515759f5f2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2714113f3caaf788997175afc41b19ca44e0bce1eec95d11139e6c0db83c0822"},"ros-noetic-twist-mux-msgs-2.1.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-message-runtime"],"build":"py39h00b06ca_17","timestamp":1674413961873,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"af8e6514c07a6e9315ec8304c6a10a11","name":"ros-noetic-twist-mux-msgs","requires":[],"size":57432,"version":"2.1.0","binstar":{"package_id":"63cd17b0c37c80a75bce2ebe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ba5fcdd9321ee062dc97d293474c79d1245f9ee61f0572bcfc6467339ebb303"},"ros-noetic-ddynamic-reconfigure-0.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674414076487,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4b12b4ab73c09b435d8765229540fff2","name":"ros-noetic-ddynamic-reconfigure","requires":[],"size":81695,"version":"0.3.2","binstar":{"package_id":"63cd17b2c37c80a75bce2ee2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa7b2441d6f7361dbd6e4a1fc4bc98acdc4334d2d8fad909bf2a684d9fc53edc"},"ros-noetic-franka-visualization-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-description","ros-noetic-libfranka","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674385807637,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8df30012fc02037a4f2a27cda2ed0986","name":"ros-noetic-franka-visualization","requires":[],"size":37245,"version":"0.10.1","binstar":{"package_id":"63cd199ed0e8c095e2cfbe4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37beeaea9a911fca3de2e090db2071871f4832d14553a21b6ad85cfd65051209"},"ros-noetic-rqt-ez-publisher-0.6.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39h00b06ca_17","timestamp":1674423579543,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9f585702163a9b54d7e0e94a98ccdee0","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":61817,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a32e6ed6f910d30947e4067258b8b0144b297cc530cf5490d1603875a846312c"},"ros-noetic-rqt-ez-publisher-0.6.1-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39h00b06ca_18","timestamp":1678494629329,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0415ee92576a500db499e5de16e926ba","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":62233,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80ff510a8ac600b3720608cba3bd1ec30ed5c54968743f843061c2d7708527c7"},"ros-noetic-rqt-ez-publisher-0.6.1-py39h00b06ca_19.tar.bz2":{"build_number":19,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39h00b06ca_19","timestamp":1682561073799,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2eb261ed4cbc186d51c9f55a6820bf3c","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":62277,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae9adcbc5f7efa2d24059a97e51b3fe65aec7a32fe3f80ae8a4d5642a5888b91"},"ros-noetic-jackal-base-0.7.4-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-diff-drive-controller","ros-noetic-geometry-msgs","ros-noetic-imu-filter-madgwick","ros-noetic-jackal-msgs","ros-noetic-nmea-msgs","ros-noetic-nmea-navsat-driver","ros-noetic-realtime-tools","ros-noetic-rosserial-python","ros-noetic-rosserial-server","ros-noetic-sensor-msgs","ros-noetic-teleop-twist-joy","ros-noetic-tf","ros-noetic-topic-tools"],"build":"py39h5cf4051_3","timestamp":1674426663700,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a0c50ec27de408ebe55e371c3f18047d","name":"ros-noetic-jackal-base","requires":[],"size":212118,"version":"0.7.4","binstar":{"package_id":"63cd86f60273ee116ae05ce1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea59391d96531a08bf882b6a41cba767f3a95c32a85ef522ad090b7989ecdf55"},"ros-noetic-ros-comm-1.15.15-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-ros","ros-noetic-rosbag","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslaunch","ros-noetic-roslisp","ros-noetic-rosmaster","ros-noetic-rosmsg","ros-noetic-rosnode","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostest","ros-noetic-rostopic","ros-noetic-roswtf","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp"],"build":"py39h00b06ca_17","timestamp":1674420287816,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"032948e87b847378b948f290a5502943","name":"ros-noetic-ros-comm","requires":[],"size":8819,"version":"1.15.15","binstar":{"package_id":"63cd872bc37c80a75b007dfe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aed2f432a4401bca02a439bef559efc8231238e8c5a25f6735d1605770326bd0"},"ros-noetic-rqt-tf-tree-0.6.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rospy","ros-noetic-rqt-graph","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","rospkg"],"build":"py39h00b06ca_17","timestamp":1674416895245,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1eaa9ab69b0fbe01822f2d5e1f747cb0","name":"ros-noetic-rqt-tf-tree","requires":[],"size":29801,"version":"0.6.3","binstar":{"package_id":"63cd872ddbdf733521cf2103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a2ca3f88631a7f7645daeb0a591593730339c1bfb6d65aac2a96cadcee776e0"},"ros-noetic-rqt-msg-0.4.10-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39h00b06ca_17","timestamp":1674450491466,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13c04ccbc3d18c60fc4317224bd6fd6c","name":"ros-noetic-rqt-msg","requires":[],"size":27697,"version":"0.4.10","binstar":{"package_id":"63cd872edbdf733521cf2113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5b8881afa98770ec2efac1b7eb1b1e496a4935f1c7279f5def37f32e30f5340"},"ros-noetic-common-msgs-1.13.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-diagnostic-msgs","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-stereo-msgs","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674413799820,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8d2792703b58c4e49df54930d1c90646","name":"ros-noetic-common-msgs","requires":[],"size":7760,"version":"1.13.1","binstar":{"package_id":"63cd873086de531a28ddc45b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31ac65c8c03f78ef9f5db49759c115dca4cdcfc75d5e60456318ee78a9a9312d"},"ros-noetic-diagnostic-common-diagnostics-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-rospy","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674422966808,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cb31e81e3e63bb595362318f1566297d","name":"ros-noetic-diagnostic-common-diagnostics","requires":[],"size":57092,"version":"1.11.0","binstar":{"package_id":"63cd8731dbdf733521cf2127","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73954b584e3e780287cea748333af11a909ed7f2bee415e2519f4980d25499da"},"ros-noetic-laser-geometry-1.6.7-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2"],"build":"py39h20fafc8_17","timestamp":1674422382805,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8af85b6f23f66c52b13edcf8d05cc8e1","name":"ros-noetic-laser-geometry","requires":[],"size":54264,"version":"1.6.7","binstar":{"package_id":"63cd873bd0e8c095e203494d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a9f6e501cefddb872db9ea8f48ef7e4e77aa31f57504860de5707155058114e"},"ros-noetic-robot-state-publisher-1.15.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-kdl-parser","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674422630900,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b9b609f57a3faf79529147638d62e156","name":"ros-noetic-robot-state-publisher","requires":[],"size":53203,"version":"1.15.2","binstar":{"package_id":"63cd873c5a31eb90f6dfa4b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22f72b3cae34db7926365d3b91063003b5e12eeeeeec2ccd69895ea59940d822"},"ros-noetic-rqt-reconfigure-0.5.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39h00b06ca_17","timestamp":1674436871318,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"71d22eefbe5003b285c26f95cfddcde6","name":"ros-noetic-rqt-reconfigure","requires":[],"size":92523,"version":"0.5.5","binstar":{"package_id":"63cd873dc37c80a75b008283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bdb4d9eeb5844709493a2ce4308920d04472718e661a069672b029205b2c149"},"ros-noetic-rqt-robot-monitor-0.5.14-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39h00b06ca_17","timestamp":1674417385033,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6b4708df2f0e896e873100027eeffd3a","name":"ros-noetic-rqt-robot-monitor","requires":[],"size":54850,"version":"0.5.14","binstar":{"package_id":"63cd873ed0e8c095e2034995","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e97372378fcba7a9c37323d6890c1c48b3432ff10ae8ef8c1bb7a55a73994998"},"ros-noetic-interactive-markers-1.12.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674422491746,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"afbf336e2312b448ab3bc617d73901ae","name":"ros-noetic-interactive-markers","requires":[],"size":158349,"version":"1.12.0","binstar":{"package_id":"63cd873fa64974fd0925dfa1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04de5a24b858b9396ef0e16ebf166d4fc417e092610a63ff307c8a714c0b2770"},"ros-noetic-turtle-tf2-0.2.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-turtlesim"],"build":"py39h00b06ca_17","timestamp":1674423454479,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8ae22d68a38243ae0e757c70c325a8c3","name":"ros-noetic-turtle-tf2","requires":[],"size":55124,"version":"0.2.3","binstar":{"package_id":"63cd87b259c09271a414f6f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a778d0f1e7b5b02e93edae10e26804fca2e1fa16b9c05f4f7f3d1cddcee83cc7"},"ros-noetic-rqt-launch-0.4.9-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslaunch","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39h00b06ca_17","timestamp":1674425992811,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6ee39d7be6dc858a6d53213191c3b732","name":"ros-noetic-rqt-launch","requires":[],"size":43643,"version":"0.4.9","binstar":{"package_id":"63cd87b3dbdf733521cf4b27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd08e8fb15ae13bb4ef668f22d517f1fb96d7c271ca475c2765564ee477f6dd2"},"ros-noetic-turtle-tf-0.2.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlesim"],"build":"py39h00b06ca_17","timestamp":1674423630768,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9c95425dc6d955e508143770c2c45c88","name":"ros-noetic-turtle-tf","requires":[],"size":114356,"version":"0.2.3","binstar":{"package_id":"63cd87b45a31eb90f6dfb5c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5004556d47633ab2e1084417d36b4de4ee95bbc122f281c510c855ebed8d7454"},"ros-noetic-rqt-dep-0.4.12-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-graph","ros-noetic-rqt-gui-py","rospkg"],"build":"py39h00b06ca_17","timestamp":1674417344034,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"96198a286032ee9dacb38f943b8a7758","name":"ros-noetic-rqt-dep","requires":[],"size":46853,"version":"0.4.12","binstar":{"package_id":"63cd87b5989160afcf5d12d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5833258c33e27271cbc96440b7d45f766055140f591373a80b6519c870b09689"},"ros-noetic-rosapi-0.11.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosbridge-library","ros-noetic-rosgraph","ros-noetic-rosnode","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1674413769156,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ac6b532997fa89a3b3988b25054917da","name":"ros-noetic-rosapi","requires":[],"size":136480,"version":"0.11.16","binstar":{"package_id":"63cd8901c37c80a75b01b149","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c8b1bd61b4fbba28ebd084513a2630405a103af0447a1f3104d4e677edcd0fd"},"ros-noetic-franka-gripper-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-control-msgs","ros-noetic-libfranka","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-xmlrpcpp"],"build":"py39h00b06ca_17","timestamp":1674413920921,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"037bb0647d8c41381c7edac6c582c4c3","name":"ros-noetic-franka-gripper","requires":[],"size":321625,"version":"0.10.1","binstar":{"package_id":"63cd890a5a31eb90f6e0b6b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"520f10b5058a394d203eeae3416e4e3086e6057ac665b94302eb9103829656ae"},"ros-noetic-franka-hw-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-combined-robot-hw","ros-noetic-controller-interface","ros-noetic-franka-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-libfranka","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-srvs","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674414049964,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8154efc402889361a9fef1efd5522d89","name":"ros-noetic-franka-hw","requires":[],"size":266486,"version":"0.10.1","binstar":{"package_id":"63cd890f5a31eb90f6e0c213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20957c5b6127e615df461cacfebbf98a9a36c94b8f76d160550b24cca6de4fe6"},"ros-noetic-image-common-1.12.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-camera-info-manager","ros-noetic-image-transport","ros-noetic-polled-camera"],"build":"py39h00b06ca_17","timestamp":1674417583587,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8414b2036ca6de1b2193f213f88052ff","name":"ros-noetic-image-common","requires":[],"size":7960,"version":"1.12.0","binstar":{"package_id":"63cd8b4514201bfa45a1a21f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d04696dd3b026065f44bd1bf437fee439487aad42159fd715d09b48e1bf57044"},"ros-noetic-tf2-tools-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674420291030,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"532311a565878b6b231f803457f8abc6","name":"ros-noetic-tf2-tools","requires":[],"size":23030,"version":"0.7.6","binstar":{"package_id":"63cd8b47be293b9e162ebaea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b3db074eee6b641f5ae4cb1c8e92164b30050bccf57a08adc1cf62ecad3ab9d"},"ros-noetic-twist-mux-3.1.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-twist-mux-msgs","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674420429543,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3a89707a6a0554fbaead326a0670f53c","name":"ros-noetic-twist-mux","requires":[],"size":101729,"version":"3.1.3","binstar":{"package_id":"63cd8cc8c37c80a75b03bb72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75c49be7c7661665b7de92e78766e07c588cd2fe4160947554799d8f06ba99af"},"ros-noetic-tf2-sensor-msgs-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674419799653,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8c8fdef53cb15feeb0182c8ad94f980f","name":"ros-noetic-tf2-sensor-msgs","requires":[],"size":16559,"version":"0.7.6","binstar":{"package_id":"63cd8d0a68b198bb95115bb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d2dcfc0585a57f00d9de6344cd111ee93db5054c8a8c5515dca4fdd32adae5f"},"ros-noetic-forward-command-controller-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674417315065,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"11b35faf427dd411e598257a6189bb85","name":"ros-noetic-forward-command-controller","requires":[],"size":14043,"version":"0.21.0","binstar":{"package_id":"63cd8d96d0e8c095e205cfbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7d0629ed10927877513c970ae55ee6346308cd9a62d7857030be2a171ab17f1"},"ros-noetic-control-toolbox-1.19.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","tinyxml"],"build":"py39h00b06ca_17","timestamp":1674417240594,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bcf4600c6629e398de1151e15b1f96d6","name":"ros-noetic-control-toolbox","requires":[],"size":120301,"version":"1.19.0","binstar":{"package_id":"63cd8d99b23346582c7854be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88c4dea9e199e5c597019a10fac778c2a809b3d007c69386fe3c181bea29aa7a"},"ros-noetic-depth-image-proc-1.17.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-eigen-conversions","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h20fafc8_17","timestamp":1674417115744,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"47af7ee0406a4185cc7e7c3279c21ed2","name":"ros-noetic-depth-image-proc","requires":[],"size":242323,"version":"1.17.0","binstar":{"package_id":"63cd8d9a2ff78d332eb6168e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8558cd8dd9d08b18f3abb43e21f362bd832c52dc96553c9fefe71131868ba428"},"ros-noetic-image-proc-1.17.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h20fafc8_17","timestamp":1674416930941,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f2531e0a0f44a825723dabab14bd44ce","name":"ros-noetic-image-proc","requires":[],"size":205317,"version":"1.17.0","binstar":{"package_id":"63cd8d9bd0e8c095e205d00a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e7f7cb1246df764c79dff281e51ade47f4ec0f84f0d82f8a518d09a5b21dcac"},"ros-noetic-actionlib-tutorials-0.2.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674417457179,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"413ed3df499f9cdd6cb3369e75cd7437","name":"ros-noetic-actionlib-tutorials","requires":[],"size":375726,"version":"0.2.0","binstar":{"package_id":"63cd934a989160afcf5f665d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f9712dece0e7b73c4333d9ffe666535cdc2b02bffe4f3d0d5658a975dd02b6f"},"ros-noetic-rqt-pose-view-0.5.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyopengl","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-gl-dependency","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","rospkg","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674425891571,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8687449a80d9c686b3b42c7bdcc21cd6","name":"ros-noetic-rqt-pose-view","requires":[],"size":36585,"version":"0.5.11","binstar":{"package_id":"63cd934b68b198bb9512050b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"006fc72419a1a0fac2b5e7124aa5175dadd665da5bddbfda3613261a3d22858d"},"ros-noetic-ros-core-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-class-loader","ros-noetic-cmake-modules","ros-noetic-common-msgs","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-ros","ros-noetic-ros-comm","ros-noetic-rosbag-migration-rule","ros-noetic-rosconsole","ros-noetic-rosconsole-bridge","ros-noetic-roscpp-core","ros-noetic-rosgraph-msgs","ros-noetic-roslisp","ros-noetic-rospack","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39h00b06ca_17","timestamp":1674422884245,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f525aebb6b328942e39128cf2378b29e","name":"ros-noetic-ros-core","requires":[],"size":8394,"version":"1.5.0","binstar":{"package_id":"63cd934c5a31eb90f6e40387","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3772671aff85b3b202736ff5f798e2b973bc1764de4a9c4255927d4afb4d3d37"},"ros-noetic-rqt-srv-0.4.9-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-msg"],"build":"py39h00b06ca_17","timestamp":1674451120298,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a9e382e8b7498096d9361dd35806c669","name":"ros-noetic-rqt-srv","requires":[],"size":16481,"version":"0.4.9","binstar":{"package_id":"63cd934e8ff1ad2742405c16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"223d1272c8b475e4fdeb2b2f184b0670755c3489da174b8245f71ed119679850"},"ros-noetic-geometry-tutorials-0.2.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtle-tf","ros-noetic-turtle-tf2"],"build":"py39h00b06ca_17","timestamp":1674425993010,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6296a87c38cd696e15b2624a0ffe9c76","name":"ros-noetic-geometry-tutorials","requires":[],"size":9364,"version":"0.2.3","binstar":{"package_id":"63cd93d6d0e8c095e208c53d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b51cbe900a034fff47adbcb1dacdf71c6e2db96af2cefeea3ea7728ddbd6100"},"ros-noetic-jackal-description-0.8.5-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-lms1xx","ros-noetic-pointgrey-camera-description","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h5cf4051_3","timestamp":1674429404763,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86b2ee71e604ae2e0aa359d652e0e60b","name":"ros-noetic-jackal-description","requires":[],"size":916381,"version":"0.8.5","binstar":{"package_id":"63cd93d8a64974fd09273cb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf6dba1463f13367cbb5840ea846a48ac81694691d0274a75b4954cae7673c05"},"ros-noetic-diagnostics-1.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-analysis","ros-noetic-diagnostic-common-diagnostics","ros-noetic-diagnostic-updater","ros-noetic-self-test"],"build":"py39h00b06ca_17","timestamp":1674425859521,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e317dfb8d5c18e7043409782b7dd9566","name":"ros-noetic-diagnostics","requires":[],"size":9019,"version":"1.11.0","binstar":{"package_id":"63cd93da989160afcf5f74f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0acb4c2f3249b29132554a78c2846a795a4b8af8edab694156aa9fe3eda1633f"},"ros-noetic-interactive-marker-tutorials-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674426013749,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c55ad45d1d3b748bcc03fa427110861c","name":"ros-noetic-interactive-marker-tutorials","requires":[],"size":107887,"version":"0.11.0","binstar":{"package_id":"63cd93dc5a31eb90f6e4590e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6573e880c1c67a3d5d65b9b399614b8a5dc7c1691abea0a64d7ebca16f456e87"},"ros-noetic-rqt-action-0.4.9-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-rqt-msg","ros-noetic-rqt-py-common"],"build":"py39h00b06ca_17","timestamp":1674451228256,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"98ecd916ad4586f0b63a764689d3db9d","name":"ros-noetic-rqt-action","requires":[],"size":16476,"version":"0.4.9","binstar":{"package_id":"63cd93dedbdf733521d5ab42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c12f9017249cce3add55933c84e15744574763865cd84675a9da3b808adbeced"},"ros-noetic-compressed-image-transport-1.14.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39h00b06ca_17","timestamp":1674420167993,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9d0d6eac25217d9d124936c4a4aced51","name":"ros-noetic-compressed-image-transport","requires":[],"size":137552,"version":"1.14.0","binstar":{"package_id":"63cd94aec37c80a75b0717dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b6d63d4b0fcb90b5a85a6ed81748ea8f176a0a8724af08f8fa0a6e430c2fb53"},"ros-noetic-imu-sensor-controller-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674420571000,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c28be795677e201b09a30a2f48143e73","name":"ros-noetic-imu-sensor-controller","requires":[],"size":46652,"version":"0.21.0","binstar":{"package_id":"63cd94b1d0e8c095e20911ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0074d12ca1d8922a9ae0a2795e9402a0048b0b84af95094b366ecc494a169bfd"},"ros-noetic-force-torque-sensor-controller-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674420710389,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"adb4fddc040d7503029b01f86e0ecf68","name":"ros-noetic-force-torque-sensor-controller","requires":[],"size":45571,"version":"0.21.0","binstar":{"package_id":"63cd94b668b198bb951221b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"267fef2d61983e6a1ac8127fed89f63665cb3e76757b8f6b76cc7f693864ebb3"},"ros-noetic-common-tutorials-0.2.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-tutorials","ros-noetic-nodelet-tutorial-math","ros-noetic-pluginlib-tutorials","ros-noetic-turtle-actionlib"],"build":"py39h00b06ca_17","timestamp":1674423409495,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d1fe82c7a8386ab6473bb8526a9192d2","name":"ros-noetic-common-tutorials","requires":[],"size":8552,"version":"0.2.0","binstar":{"package_id":"63cd94e6989160afcf5ff522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf81b56aef7283be9dda54b52e17d62dc9ed040e8d1ccf465f7cf599fe82b058"},"ros-noetic-joint-state-controller-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h00b06ca_17","timestamp":1674416872520,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f1939ee0ebeb28866b5178d16495b5c3","name":"ros-noetic-joint-state-controller","requires":[],"size":51014,"version":"0.21.0","binstar":{"package_id":"63cd953cc37c80a75b0756bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c56324c8d05346ee0069ba0aebfabae457d9293fdf633e7628bc1806f36b69a"},"ros-noetic-rqt-plot-0.4.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","matplotlib-base","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-qwt-dependency","ros-noetic-rosgraph","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-std-msgs","rospkg"],"build":"py39h00b06ca_17","timestamp":1674417082911,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"05830b8786339a9dcba4c9bf91234ad0","name":"ros-noetic-rqt-plot","requires":[],"size":74479,"version":"0.4.13","binstar":{"package_id":"63cd953fd0e8c095e20948c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82ed8eeedd051c66797e3194586b426431a05da237df635749d85a81953ae8a8"},"ros-noetic-rqt-image-view-0.4.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674417288284,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5b1280cd1d3269109a1cc07f76dd1c6a","name":"ros-noetic-rqt-image-view","requires":[],"size":67263,"version":"0.4.16","binstar":{"package_id":"63cd95418ff1ad2742410e13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f6e71bd623250bf2dba7eda104a2e75d9319fb2bc4c7735d8035923a550c489"},"ros-noetic-ros-base-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-bond-core","ros-noetic-dynamic-reconfigure","ros-noetic-nodelet-core","ros-noetic-ros-core"],"build":"py39h00b06ca_17","timestamp":1674425689909,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f2c90588658cb4019ce30c172a465845","name":"ros-noetic-ros-base","requires":[],"size":8307,"version":"1.5.0","binstar":{"package_id":"63cd9565d0e8c095e20950c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39ae81e54461480e6842a998c1fbe1a431a728a17c6213632e2a0bc08d3ead4a"},"ros-noetic-ros-control-0.19.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-combined-robot-hw","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-realtime-tools","ros-noetic-transmission-interface"],"build":"py39h00b06ca_17","timestamp":1674417642306,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cac69dab64c369a5006a1d7d6b823a84","name":"ros-noetic-ros-control","requires":[],"size":8358,"version":"0.19.6","binstar":{"package_id":"63cd95f2b23346582c79c7dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bef20d7bf4cf406f598f2d8eb019fdd6f64379d2acfc8e9cb6cba7130e6f86b"},"ros-noetic-rosbridge-server-0.11.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","autobahn","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosauth","ros-noetic-rosbridge-library","ros-noetic-rosbridge-msgs","ros-noetic-rospy","tornado","twisted"],"build":"py39h00b06ca_17","timestamp":1674417499927,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a32791dfe165c8194c576e68370b38d6","name":"ros-noetic-rosbridge-server","requires":[],"size":53832,"version":"0.11.16","binstar":{"package_id":"63cd95f55a31eb90f6e4bfb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c1b8b45e8bfc8f9b96179d6fdf66912d2c08303ccff27398673eaf974fa218d"},"ros-noetic-position-controllers-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674422716148,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c31a0b8cd1ba202380013637dfa024f7","name":"ros-noetic-position-controllers","requires":[],"size":57347,"version":"0.21.0","binstar":{"package_id":"63cd9a670273ee116ae47e63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d323ec3963225f910e2624e15c90788fa2b467fab3384eb1f67c9d15bcc4a77b"},"ros-noetic-velocity-controllers-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674422605655,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"13d8c51c265b421b2a1e243b825cc207","name":"ros-noetic-velocity-controllers","requires":[],"size":71802,"version":"0.21.0","binstar":{"package_id":"63cd9a69dbdf733521d84247","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79d050f3576c81790a7462439228bca223f7871883855cc60e6b9153083647ca"},"ros-noetic-amcl-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674423881064,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a68e9c942539052421841207a64a187d","name":"ros-noetic-amcl","requires":[],"size":299403,"version":"1.17.3","binstar":{"package_id":"63cd9a6d2ff78d332eb95e25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4219bf98b7830119fcca54c0f2dac53bc17249abec704e155dee3b349123e66a"},"ros-noetic-diff-drive-controller-0.21.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-controller-interface","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-tf","ros-noetic-urdf"],"build":"py39h20fafc8_17","timestamp":1674423012788,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bbda46dff691af6263b2e674a31923cf","name":"ros-noetic-diff-drive-controller","requires":[],"size":146102,"version":"0.21.0","binstar":{"package_id":"63cd9a6fdbdf733521d84319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"094f0a0c6ea6571a2536416964086935332b11d7ab4850d8bb78aaad8595d7d5"},"ros-noetic-gmapping-1.4.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-openslam-gmapping","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674423172780,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"aba5ea8ac5127a1268cb0728f18ab62b","name":"ros-noetic-gmapping","requires":[],"size":351734,"version":"1.4.2","binstar":{"package_id":"63cd9a89dbdf733521d847e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"875fd967951d19388b360311d091f83d2cccfadcb47fd22e2628de40e756256b"},"ros-noetic-realsense2-camera-2.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-ddynamic-reconfigure","ros-noetic-diagnostic-updater","ros-noetic-genmsg","ros-noetic-image-transport","ros-noetic-librealsense2","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674422705846,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7a3c50722a1e52172b1ecda9285e3498","name":"ros-noetic-realsense2-camera","requires":[],"size":384134,"version":"2.3.2","binstar":{"package_id":"63cd9a8bdbdf733521d8489e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"749920b0eae2f809f443e79c1c16e5807a793dc559bd2cf9ae9deec427290593"},"ros-noetic-gazebo-ros-2.9.2-py39h8c2ef58_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","tbb >=2021.7.0","tinyxml"],"build":"py39h8c2ef58_17","timestamp":1674422746475,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"cc7a8b8590e0fa47ca1fc39c355c18df","name":"ros-noetic-gazebo-ros","requires":[],"size":342956,"version":"2.9.2","binstar":{"package_id":"63cd9b9b8ff1ad27424363d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ddd5d81b08b5986443b8d20af177d2d0e952ac50f901a98daecde2bce02f6cb"},"ros-noetic-warehouse-ros-0.9.5-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39h20fafc8_17","timestamp":1674422771418,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"100cb9ae1b0b135842cb514c69108af1","name":"ros-noetic-warehouse-ros","requires":[],"size":104211,"version":"0.9.5","binstar":{"package_id":"63cd9b9d989160afcf60f1c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a4c086e9af5dfe6cbafbea1534962f31cbc9481cde346163e3f8b64ba1176c7"},"ros-noetic-nmea-navsat-driver-0.6.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nmea-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674423259864,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f4012d95aec87de8ea867e7c4dfa5e73","name":"ros-noetic-nmea-navsat-driver","requires":[],"size":42064,"version":"0.6.1","binstar":{"package_id":"63cd9d53c37c80a75b0a4686","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e243c01931b72dfb7cd7fb955e069e8d014390437c3463aa2a2ebeca1c678a82"},"ros-noetic-geometry2-0.7.6-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-bullet","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-tf2-ros","ros-noetic-tf2-sensor-msgs","ros-noetic-tf2-tools"],"build":"py39h00b06ca_17","timestamp":1674423514895,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"461831fb4469e27fe5f80df544cd51e3","name":"ros-noetic-geometry2","requires":[],"size":8270,"version":"0.7.6","binstar":{"package_id":"63cd9d55c37c80a75b0a4688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f10c34edd5ec20d1718a82a273f1fdc40c24d986af42af6b4bd6848232cf50c6"},"ros-noetic-tf-conversions-1.13.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-kdl-conversions","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674422906320,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fcd08c904f4aa33e57c5454161ae7466","name":"ros-noetic-tf-conversions","requires":[],"size":24241,"version":"1.13.2","binstar":{"package_id":"63cd9e5168b198bb95130c53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cece0290b0095845b71e269497614a513df4eaeb064c633fd168941a1b3e2f3"},"ros-noetic-rqt-nav-view-0.5.7-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674437002738,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f9a974306974207f986f1d75f637ecd9","name":"ros-noetic-rqt-nav-view","requires":[],"size":35772,"version":"0.5.7","binstar":{"package_id":"63cd9e53912363225bcece18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"beacb6e3fdb26f1a3d056a1940faba4002b10b02027f181dbcd3936043b70ec4"},"ros-noetic-pcl-ros-1.7.4-py39he89d370_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","xorg-libx11","xorg-libxext"],"build":"py39he89d370_17","timestamp":1674423532748,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"873d87d6046b8cbc1b7d959a52bf6b1c","name":"ros-noetic-pcl-ros","requires":[],"size":1660680,"version":"1.7.4","binstar":{"package_id":"63cd9e58dbdf733521daa1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9bb75996db51b75d097426ea4befd9e0f04f32d0cc7cfe4b58f379ccaad5f26"},"ros-noetic-stereo-image-proc-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-proc","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-stereo-msgs"],"build":"py39h00b06ca_17","timestamp":1674423718798,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eccf6fa140605b5598d978edf87d9ab2","name":"ros-noetic-stereo-image-proc","requires":[],"size":244104,"version":"1.17.0","binstar":{"package_id":"63cd9e5a989160afcf612380","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26b24c61eb9646c1722bafe44c4b1d95b051670ca3ccea4c5282a507c6ecbdca"},"ros-noetic-imu-filter-madgwick-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674423073411,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e9e3bce5237293bcc9369b05fd56c3a1","name":"ros-noetic-imu-filter-madgwick","requires":[],"size":173314,"version":"1.2.5","binstar":{"package_id":"63cda06bb23346582c7b4d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b95752fc2b16a6aabb5edfcf590cc4efe7b8cca43148ae1140dd28888e4406e"},"ros-noetic-imu-complementary-filter-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674423212443,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f6b5b16e3e71edc3a5ece56c2e9af41d","name":"ros-noetic-imu-complementary-filter","requires":[],"size":119039,"version":"1.2.5","binstar":{"package_id":"63cda06ccd65eb0e14ab1e74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f38a24ffefb28d9c263deab91aa7ddeff25a5453ead3b10bb133635502e625cb"},"ros-noetic-hector-trajectory-server-0.5.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hector-map-tools","ros-noetic-hector-nav-msgs","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674423545915,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bc39fcfa4215091a84ba1f215694e396","name":"ros-noetic-hector-trajectory-server","requires":[],"size":53212,"version":"0.5.2","binstar":{"package_id":"63cda06dedf45d7c2ea7414b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31098131f720096621dccbf1166b719d840590eb23af99ceaedc93083ec5c9dd"},"ros-noetic-joint-trajectory-controller-0.21.0-py39h20fafc8_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-angles","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-trajectory-msgs","ros-noetic-urdf"],"build":"py39h20fafc8_17","timestamp":1674422852295,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1f1643ea07c79a9e7f1b12d473ced32e","name":"ros-noetic-joint-trajectory-controller","requires":[],"size":280750,"version":"0.21.0","binstar":{"package_id":"63cda7a0912363225bd0c309","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"791bd1e37f3b953b41efc402738c0dd75b265804638a17b037abfabeb8be46c7"},"ros-noetic-image-transport-plugins-1.14.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-compressed-depth-image-transport","ros-noetic-compressed-image-transport","ros-noetic-theora-image-transport"],"build":"py39h00b06ca_17","timestamp":1674423298224,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8eb38a262bfc69b0a573fefc20dbc3ee","name":"ros-noetic-image-transport-plugins","requires":[],"size":9184,"version":"1.14.0","binstar":{"package_id":"63cda859cd65eb0e14acab7f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ab2b28f88f6fc82a013b5839bbf42049007b4cbabbcf817e293550d11bf293e"},"ros-noetic-robot-localization-2.7.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-cmake-modules","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-eigen-conversions","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h00b06ca_17","timestamp":1674423099971,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8eb0e88be32948424bfbf654b867ba82","name":"ros-noetic-robot-localization","requires":[],"size":753462,"version":"2.7.4","binstar":{"package_id":"63cda8b5d0e8c095e212df59","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb34e33162be24a717942f6261a34c20c40733d4c352a655c3e29fff371a7f37"},"ros-noetic-image-rotate-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674423283536,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"21fe40a7b1c80d8237fc7e40c725afe7","name":"ros-noetic-image-rotate","requires":[],"size":110157,"version":"1.17.0","binstar":{"package_id":"63cda8bf5a31eb90f6ea475b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e54507503155e0ce3e47f345d4740243c0d203975f4dbbb9d1d7fb1ad4e06cac"},"ros-noetic-gripper-action-controller-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674422826913,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"db6c3a49cbf42b20fe68fbcccf004d7d","name":"ros-noetic-gripper-action-controller","requires":[],"size":122842,"version":"0.21.0","binstar":{"package_id":"63cdab045a31eb90f6eb1139","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c9238d1373ed9408e56ca896c26aae669b2b2e4d4a5086ae12e6a0d679e6242"},"ros-noetic-rqt-bag-plugins-0.5.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pillow","pycairo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-plot","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674423037043,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6e67f8aa50dd9ddbc1f9f52c9eb2c98b","name":"ros-noetic-rqt-bag-plugins","requires":[],"size":49893,"version":"0.5.1","binstar":{"package_id":"63cdab0c912363225bd2787a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af602a3457030c84b2890bc5057e59e4ae5bf5ce1f0837f1f4996c2e88e13c8b"},"ros-noetic-ros-numpy-0.0.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674423637599,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ea3565338e6f2e8a6c766036402ff863","name":"ros-noetic-ros-numpy","requires":[],"size":35323,"version":"0.0.5","binstar":{"package_id":"63cdad600273ee116ae82275","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7848e29403e28f6e9a3406c01cd86123f8ad29ad2a75e2c72b72f89a05cd23f2"},"ros-noetic-tf2-web-republisher-0.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674423460692,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"984e8827a274def4dc9d64db608e4291","name":"ros-noetic-tf2-web-republisher","requires":[],"size":172874,"version":"0.3.2","binstar":{"package_id":"63cdad6359c09271a41af6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a80df9cc36c08b9e2a98f79f9579d98d29af6f8c53b640597568d3b69ee8286"},"ros-noetic-rosbridge-suite-0.11.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosbridge-library","ros-noetic-rosbridge-server"],"build":"py39h00b06ca_17","timestamp":1674423315115,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"62b0694dc1b7fda9af2f18516f1ffcf8","name":"ros-noetic-rosbridge-suite","requires":[],"size":8550,"version":"0.11.16","binstar":{"package_id":"63cdad67c37c80a75b0fb239","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c0aa25d2db522c7b86a9a532174f3ce4884ed6c4599151280ecc65929294d90"},"ros-noetic-mbf-utility-0.4.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674422808370,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"466ae541d5283660ee07fce75836bb65","name":"ros-noetic-mbf-utility","requires":[],"size":30375,"version":"0.4.0","binstar":{"package_id":"63cdad748ff1ad274248812f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78fb6f56fcd769acd57d0fc89b1927768a266bc6184668be7f1423eb6edd2575"},"ros-noetic-geometry-1.13.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-eigen-conversions","ros-noetic-kdl-conversions","ros-noetic-tf","ros-noetic-tf-conversions"],"build":"py39h00b06ca_17","timestamp":1674425772301,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c475622bbcd818f5e2672e72e592d831","name":"ros-noetic-geometry","requires":[],"size":9399,"version":"1.13.2","binstar":{"package_id":"63cdb1592b70bce8309906fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4335ee0ccfe713cf0dbc392222d8e925ea2d40f116a11361fb1f03639f7671a"},"ros-noetic-velodyne-gazebo-plugins-1.0.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674425942151,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"acd2e8beeb77af2ebe7d83e1d7c016fd","name":"ros-noetic-velodyne-gazebo-plugins","requires":[],"size":122718,"version":"1.0.13","binstar":{"package_id":"63cdb2ccc37c80a75b11b496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1fbc8795bfdca87008f18f448b8071974655f021aa63ec04fa8d8685fdedb4f"},"ros-noetic-perception-pcl-1.7.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pcl-ros"],"build":"py39h00b06ca_17","timestamp":1674426242408,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"763ec3c2aec9a4a429f7a174558e27bb","name":"ros-noetic-perception-pcl","requires":[],"size":9517,"version":"1.7.4","binstar":{"package_id":"63cdb2d08ff1ad27424a71a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b3539e102fdefb00505c3229a00a9c21710414d2ddd2487511b7a880db2cc4a"},"ros-noetic-pointgrey-camera-description-0.15.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674426016268,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8cfedb7232730bdf145909199c20b271","name":"ros-noetic-pointgrey-camera-description","requires":[],"size":34577,"version":"0.15.1","binstar":{"package_id":"63cdb2d20273ee116ae9004d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc3e0c6152a86c8f65abecb941001ccb1fa4d44801057780178be1baaba8fc87"},"ros-noetic-turtlebot3-gazebo-1.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gazebo","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlebot3-description"],"build":"py39h00b06ca_17","timestamp":1674426357404,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86893b39d1f5b2a48c57707a2e077af6","name":"ros-noetic-turtlebot3-gazebo","requires":[],"size":1535952,"version":"1.3.2","binstar":{"package_id":"63cdb4775a31eb90f6ed1873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63db5627277b971c037a5e576f2acf635886f58292d05745ae56217d7c55fe3e"},"ros-noetic-turtlebot3-bringup-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-hls-lfcd-lds-driver","ros-noetic-joint-state-publisher","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-rosserial-python","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-msgs","ros-noetic-turtlebot3-teleop"],"build":"py39h00b06ca_17","timestamp":1674426106807,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6ca79d987b126a359cf96e922240c482","name":"ros-noetic-turtlebot3-bringup","requires":[],"size":54479,"version":"1.2.5","binstar":{"package_id":"63cdb47b5a31eb90f6ed1d57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02bf4246554655fc4590ee27ee5a2df6a2afb24f8a102065dc0824d0e9856121"},"ros-noetic-turtlebot3-fake-1.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlebot3-msgs"],"build":"py39h00b06ca_17","timestamp":1674426504469,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"59f37362fb4e8541d02bda233dbe0c6e","name":"ros-noetic-turtlebot3-fake","requires":[],"size":42981,"version":"1.3.2","binstar":{"package_id":"63cdb47d8ff1ad27424b1dd6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d921087e0cfc84c21b430f1a3992c1440fd4f90a4a0fd13544bc1aa7ba9ef701"},"ros-noetic-costmap-2d-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostest","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39h00b06ca_17","timestamp":1674436657990,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f8dfee3ceac547d17808ee0b61546955","name":"ros-noetic-costmap-2d","requires":[],"size":518610,"version":"1.17.3","binstar":{"package_id":"63cdb4a5912363225bd4f4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7618611f2711764a06846e4d9767a6e3a5ea894b9e1c84b41bc30e5cc9edd30"},"ros-noetic-gazebo-ros-control-2.9.2-py39h8c2ef58_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-control-toolbox","ros-noetic-controller-manager","ros-noetic-gazebo-ros","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-transmission-interface","ros-noetic-urdf","tbb >=2021.7.0"],"build":"py39h8c2ef58_17","timestamp":1674439701573,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"75b7b397158035e198e91713936b38ef","name":"ros-noetic-gazebo-ros-control","requires":[],"size":189805,"version":"2.9.2","binstar":{"package_id":"63cdb4a714201bfa45a546c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50e9a3e3629351bded055276b75ffa6d008835563835471d469eb5e7f0e8bf3a"},"ros-noetic-laser-filters-1.9.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-dynamic-reconfigure","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674450342433,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"33205277d57da9a34a1d1c32b70bc1aa","name":"ros-noetic-laser-filters","requires":[],"size":681432,"version":"1.9.0","binstar":{"package_id":"63cdb4a9c37c80a75b121f2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be1c2f26ff692d965f8b3ea30fa87ad8ee78d3e9f8ba26e5f6abaf3f3a200da2"},"ros-noetic-moveit-resources-fanuc-moveit-config-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-fanuc-description","ros-noetic-robot-state-publisher","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674436774615,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49b289e087a1425f16d4478aaacc4f13","name":"ros-noetic-moveit-resources-fanuc-moveit-config","requires":[],"size":25300,"version":"0.8.2","binstar":{"package_id":"63cdb4aad0e8c095e217246d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08b6c466336face6479bb598bdc772ad2033a1f4e81feb51380f75c3f0aacd55"},"ros-noetic-effort-controllers-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674425446154,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"237b1b9333d563df06ed7c35e99d1f9f","name":"ros-noetic-effort-controllers","requires":[],"size":83745,"version":"0.21.0","binstar":{"package_id":"63cdb698b23346582c7fa779","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e141f07f282a41054f8c5140275fe629f5c246ee4f3c35080f07078d6c4cc55"},"ros-noetic-ackermann-steering-controller-0.21.0-py39hb8dc876_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-diff-drive-controller","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-tf","urdfdom >=3.1.0,<3.2.0a0"],"build":"py39hb8dc876_17","timestamp":1674425619439,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e2441f1c31c590bf1e211207ef099813","name":"ros-noetic-ackermann-steering-controller","requires":[],"size":85718,"version":"0.21.0","binstar":{"package_id":"63cdb699c37c80a75b12bcef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"520acf6270a5de5521544f653ea14ca0bdb69e15238e5aa298279850378dfc80"},"ros-noetic-laser-assembler-1.7.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674425815517,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"1957e249d13e82a242669d611f7b5888","name":"ros-noetic-laser-assembler","requires":[],"size":526870,"version":"1.7.8","binstar":{"package_id":"63cdb69dcd65eb0e14b0e502","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9190e100f180f046006d57ba884f6ef4fbf0ace0f4f51bd698771e71ba2974ca"},"ros-noetic-interactive-marker-twist-server-1.2.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674425625026,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b1d95ad6fa7261111d4280e0d1d32180","name":"ros-noetic-interactive-marker-twist-server","requires":[],"size":31345,"version":"1.2.2","binstar":{"package_id":"63cdb6acd0e8c095e21800be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b1805d7f84548cb4bee46c6e6e99e84069c62a30de565280b2e8765f79be10e"},"ros-noetic-franka-control-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-franka-description","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-geometry-msgs","ros-noetic-joint-state-publisher","ros-noetic-joint-trajectory-controller","ros-noetic-libfranka","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39h00b06ca_17","timestamp":1674426174391,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"41a6c3f7678b9f71b69947286d047bad","name":"ros-noetic-franka-control","requires":[],"size":197917,"version":"0.10.1","binstar":{"package_id":"63cdb7e6b23346582c7fca07","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"140ac2b5050ebb4ab6e0d746ed5ea03fa36165f75711e2ab95464cd1a184a308"},"ros-noetic-image-pipeline-1.17.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-image-publisher","ros-noetic-image-rotate","ros-noetic-image-view","ros-noetic-stereo-image-proc"],"build":"py39h00b06ca_17","timestamp":1674426329061,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b4e43cbdae43cc32474b4d5270727d36","name":"ros-noetic-image-pipeline","requires":[],"size":9602,"version":"1.17.0","binstar":{"package_id":"63cdb7ed2ff78d332ec1945c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"adc74c5b86b3f2347df06d1d19b7d0012c3c4a30026585eca53922057f766539"},"ros-noetic-robot-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-diagnostics","ros-noetic-executive-smach","ros-noetic-filters","ros-noetic-geometry","ros-noetic-joint-state-publisher","ros-noetic-kdl-parser","ros-noetic-robot-state-publisher","ros-noetic-ros-base","ros-noetic-urdf","ros-noetic-urdf-parser-plugin","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674429126228,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e020ce8873712fd2b727840ac7b49287","name":"ros-noetic-robot","requires":[],"size":9233,"version":"1.5.0","binstar":{"package_id":"63cdc3e8dbdf733521eb8531","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e814b3c2a5e66dc18f0acff55b7c3db7d4bc8a81cff2ee34f943211f043f1bb4"},"ros-noetic-velodyne-simulator-1.0.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-velodyne-description","ros-noetic-velodyne-gazebo-plugins"],"build":"py39h00b06ca_17","timestamp":1674429219205,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"59822e39524031f184dc81bcb5debc6c","name":"ros-noetic-velodyne-simulator","requires":[],"size":9960,"version":"1.0.13","binstar":{"package_id":"63cdc3ead0e8c095e21e2fc7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ee2327244b23bd634a91e8fd5f6a54c98aa878f8171397ceef1e8ba530fd75f"},"ros-noetic-ros-controllers-0.21.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ackermann-steering-controller","ros-noetic-diff-drive-controller","ros-noetic-effort-controllers","ros-noetic-force-torque-sensor-controller","ros-noetic-forward-command-controller","ros-noetic-gripper-action-controller","ros-noetic-imu-sensor-controller","ros-noetic-joint-state-controller","ros-noetic-joint-trajectory-controller","ros-noetic-position-controllers","ros-noetic-velocity-controllers"],"build":"py39h00b06ca_17","timestamp":1674429066362,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"fb50f06e5bce332d1cd2b4e55246e87d","name":"ros-noetic-ros-controllers","requires":[],"size":9001,"version":"0.21.0","binstar":{"package_id":"63cdc3f0d0e8c095e21e30a3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9ac3454845fd7b3162c5f5152078f41ddd9ee6f84ba264f0a2b4ab26974b4ec"},"ros-noetic-franka-example-controllers-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-dynamic-reconfigure","ros-noetic-eigen-conversions","ros-noetic-franka-control","ros-noetic-franka-description","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-libfranka","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf","ros-noetic-tf-conversions","ros-noetic-urdf","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674429271991,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e0e57a543f8c64610764e9d3799a1110","name":"ros-noetic-franka-example-controllers","requires":[],"size":443764,"version":"0.10.1","binstar":{"package_id":"63cdc4a2dbdf733521ebf6dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bac3682ef49a817b7433bc9e95462d97b9ed1d0742b81a598def19329b3553d"},"ros-noetic-turtlebot3-example-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-msgs","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674429488422,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c3e0d44640b5eac1e0c274261c79ab20","name":"ros-noetic-turtlebot3-example","requires":[],"size":63018,"version":"1.2.5","binstar":{"package_id":"63cdc4a8cd65eb0e14b57d68","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61f10975797d7e588bffaa46c95448e0592b6de18baa4f9dc35a185cd5410680"},"ros-noetic-turtlebot3-slam-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-turtlebot3-bringup"],"build":"py39h00b06ca_17","timestamp":1674429391712,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"86dec9c7274683551959ece59911f377","name":"ros-noetic-turtlebot3-slam","requires":[],"size":42276,"version":"1.2.5","binstar":{"package_id":"63cdc4acdbdf733521ebf789","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e18cdd440ae9c06560d3a16894d35485ff342d1cb28f5ba13355815b4f502118"},"ros-noetic-turtlebot3-simulations-1.3.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-fake","ros-noetic-turtlebot3-gazebo"],"build":"py39h00b06ca_17","timestamp":1674429595760,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ec8dc1a156901ac143f4b58ce8de400c","name":"ros-noetic-turtlebot3-simulations","requires":[],"size":10036,"version":"1.3.2","binstar":{"package_id":"63cdc4aecd65eb0e14b57d98","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8dc9745462958e9562b504fec1ad4cff5843cf46cbe1cc6e752749a2dfd18f2"},"ros-noetic-laser-pipeline-1.6.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-laser-assembler","ros-noetic-laser-filters","ros-noetic-laser-geometry"],"build":"py39h00b06ca_17","timestamp":1674451448297,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0b24705ad72e72213191b57e77c26a4d","name":"ros-noetic-laser-pipeline","requires":[],"size":8973,"version":"1.6.4","binstar":{"package_id":"63cdd077dbdf733521efe04d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aed7c1fe5df0a3d81143d060a156f76e04737e50bbe5270224b437239c8d19a7"},"ros-noetic-perception-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-common","ros-noetic-image-pipeline","ros-noetic-image-transport-plugins","ros-noetic-laser-pipeline","ros-noetic-perception-pcl","ros-noetic-ros-base","ros-noetic-vision-opencv"],"build":"py39h00b06ca_17","timestamp":1674455895698,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d739d849c6dce724e1eaaf8604996af9","name":"ros-noetic-perception","requires":[],"size":9953,"version":"1.5.0","binstar":{"package_id":"63cdd7e086de531a28e0ea71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"967bed045217bd1bde162496aba15da616eebab3e46d35c0b8623b4aec774f2d"},"ros-noetic-rviz-1.14.19-py39hcf8c1d1_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-interactive-markers","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-media-export","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-python-qt-binding","ros-noetic-resource-retriever","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","ros-noetic-visualization-msgs","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.0,<3.2.0a0","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hcf8c1d1_17","timestamp":1674433636774,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d8e39c148535100a74e9fd4e159c6f55","name":"ros-noetic-rviz","requires":[],"size":2827645,"version":"1.14.19","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfe04aede9e72040f44c5c585a30a03d5ac5e211544b0c7fbe14766b9b5c958b"},"ros-noetic-rviz-1.14.20-py39h47585b7_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-interactive-markers","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-media-export","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-python-qt-binding","ros-noetic-resource-retriever","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","ros-noetic-visualization-msgs","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.1,<3.2.0a0","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h47585b7_18","timestamp":1681948026105,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"551f30aa4b4a7be88afd50ee3ca1f0b8","name":"ros-noetic-rviz","requires":[],"size":2885402,"version":"1.14.20","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b744474e8c71ec88f9b62d0ced99abdb0a994873fa72cbd7aeca9db5bcab078"},"ros-noetic-rqt-rviz-0.7.0-py39h29f5c55_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39h29f5c55_17","timestamp":1674441026683,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5316de979a91396f7d7ac130b0543eb4","name":"ros-noetic-rqt-rviz","requires":[],"size":45610,"version":"0.7.0","binstar":{"package_id":"63cddf59dbdf733521f677f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4468f5a36c122e10a427018e6dc61c5ac9508c8d06ff25584923bc4a4ded09a8"},"ros-noetic-rviz-python-tutorial-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz"],"build":"py39h00b06ca_17","timestamp":1674441167171,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0de4892672406bc1f0bcea39802c327e","name":"ros-noetic-rviz-python-tutorial","requires":[],"size":19254,"version":"0.11.0","binstar":{"package_id":"63cddfa85a31eb90f6f8c65b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"136c8ceda747e3ea3b903400498af70235126741ef19ab46a3a1420b1575a0a6"},"ros-noetic-jackal-viz-0.4.0-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-rviz"],"build":"py39h5cf4051_3","timestamp":1674438774248,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"4f135b3a3a4b4e60066db37c98069da7","name":"ros-noetic-jackal-viz","requires":[],"size":17149,"version":"0.4.0","binstar":{"package_id":"63cddfaa912363225bdf3cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22c3e0613116013666590752cbbb0b5819371dbf6811c31cb69cb4a6acf6de8c"},"ros-noetic-librviz-tutorial-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674449558804,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"659ae4e51d954f41fd1bcb6bc1bb0e02","name":"ros-noetic-librviz-tutorial","requires":[],"size":27881,"version":"0.11.0","binstar":{"package_id":"63cddfab0273ee116aefaea9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e93502bbfd187ecc350f0c2d6fabcc6fa231381f98fda9c6df5bc5638cb4aa7d"},"ros-noetic-rviz-plugin-tutorials-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674449376061,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9b487dab9bbc148ea17bbb287ce92da0","name":"ros-noetic-rviz-plugin-tutorials","requires":[],"size":129157,"version":"0.11.0","binstar":{"package_id":"63cddfad989160afcf69fcff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6cbd7e1c22f22c2103cfcbbb4adb55534d275b97d688cb5ba0215a6738effe3"},"ros-noetic-urdf-tutorial-0.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674449871645,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"070e73938b9bf948693f3af5f9036396","name":"ros-noetic-urdf-tutorial","requires":[],"size":822285,"version":"0.5.0","binstar":{"package_id":"63cddfaf59c09271a4221fe1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3a7eec8c3878f789060bea444da62664a4c10282ec65ac248ac0be62552c6f6"},"ros-noetic-moveit-resources-panda-moveit-config-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-moveit-resources-panda-description","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674436334222,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"859ad60451c26f9db263b46703ded4e1","name":"ros-noetic-moveit-resources-panda-moveit-config","requires":[],"size":29530,"version":"0.8.2","binstar":{"package_id":"63cde1a159c09271a422989e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9ea9c0a8f845105dbc6913b7bc55e8de651d605063f937bc5e2f0fc151d68b9"},"ros-noetic-jackal-desktop-0.4.0-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-viz"],"build":"py39h5cf4051_3","timestamp":1674439515187,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b272d64d88f7745d855ef65c81ad276b","name":"ros-noetic-jackal-desktop","requires":[],"size":9565,"version":"0.4.0","binstar":{"package_id":"63cde1a4b23346582c86752a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e61af05ca190ded95d0da3a0e351e4ceeedc8892eb08aac4ba2b320d2d00805d"},"ros-noetic-visualization-tutorials-0.11.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-marker-tutorials","ros-noetic-librviz-tutorial","ros-noetic-rviz-plugin-tutorials","ros-noetic-rviz-python-tutorial","ros-noetic-visualization-marker-tutorials"],"build":"py39h00b06ca_17","timestamp":1674451587153,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e75cbd662fd6d0d69e35105e623cda7a","name":"ros-noetic-visualization-tutorials","requires":[],"size":9972,"version":"0.11.0","binstar":{"package_id":"63cde1a68ff1ad274259f6a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e073a334931dd03b4a96d3c190e126c458f5558956348023250e0c19ddec33e"},"ros-noetic-rqt-robot-dashboard-0.5.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-nav-view","ros-noetic-rqt-robot-monitor"],"build":"py39h00b06ca_17","timestamp":1674450420664,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d1083ff165fbb17b6169700db8058279","name":"ros-noetic-rqt-robot-dashboard","requires":[],"size":1698493,"version":"0.5.8","binstar":{"package_id":"63cde1a859c09271a42298e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c6143b00a6c1f8c548e7f0e310e09bceca50c3a9691e8b7a81d081638385a2a"},"ros-noetic-rqt-common-plugins-0.4.9-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-action","ros-noetic-rqt-bag","ros-noetic-rqt-bag-plugins","ros-noetic-rqt-console","ros-noetic-rqt-dep","ros-noetic-rqt-graph","ros-noetic-rqt-image-view","ros-noetic-rqt-launch","ros-noetic-rqt-logger-level","ros-noetic-rqt-msg","ros-noetic-rqt-plot","ros-noetic-rqt-publisher","ros-noetic-rqt-py-common","ros-noetic-rqt-py-console","ros-noetic-rqt-reconfigure","ros-noetic-rqt-service-caller","ros-noetic-rqt-shell","ros-noetic-rqt-srv","ros-noetic-rqt-top","ros-noetic-rqt-topic","ros-noetic-rqt-web"],"build":"py39h00b06ca_17","timestamp":1674453068312,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"943add33df656653b800ced894c1efa2","name":"ros-noetic-rqt-common-plugins","requires":[],"size":10114,"version":"0.4.9","binstar":{"package_id":"63cde32c912363225be036ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a1d1c9ca0e18cc1455f1120aaebb42602a6a26bceed2a02fbfa3e15855a1375"},"ros-noetic-viz-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-base","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins","ros-noetic-rviz"],"build":"py39h00b06ca_17","timestamp":1674460345361,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"87957c6b994242d3add06af63af20c6e","name":"ros-noetic-viz","requires":[],"size":10187,"version":"1.5.0","binstar":{"package_id":"63cde32d5a31eb90f6f9b3d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf01b71355e67061cd87fc82fb4611db9d936124fa7d7348d8c1b19d563ffeec"},"ros-noetic-rqt-robot-plugins-0.5.8-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-moveit","ros-noetic-rqt-nav-view","ros-noetic-rqt-pose-view","ros-noetic-rqt-robot-dashboard","ros-noetic-rqt-robot-monitor","ros-noetic-rqt-robot-steering","ros-noetic-rqt-runtime-monitor","ros-noetic-rqt-rviz","ros-noetic-rqt-tf-tree"],"build":"py39h00b06ca_17","timestamp":1674451377127,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9e3dd18ce5194393113ea837031c7bcc","name":"ros-noetic-rqt-robot-plugins","requires":[],"size":10647,"version":"0.5.8","binstar":{"package_id":"63cde32db23346582c869736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6a727ca66c1c63ff865ed3b09d317e1be73255fe36e9f0c9890027424d7d8bf"},"ros-noetic-desktop-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-common-tutorials","ros-noetic-geometry-tutorials","ros-noetic-joint-state-publisher-gui","ros-noetic-robot","ros-noetic-ros-tutorials","ros-noetic-roslint","ros-noetic-urdf-tutorial","ros-noetic-visualization-tutorials","ros-noetic-viz"],"build":"py39h00b06ca_17","timestamp":1674470478779,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9867c42b040e7df83ee4669b919a6caf","name":"ros-noetic-desktop","requires":[],"size":10600,"version":"1.5.0","binstar":{"package_id":"63cde32e8ff1ad27425a77b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc70b43750a4048c785161a68738f34af2aacb5a4286b97cc59ade00a6ddf1d4"},"ros-noetic-rviz-imu-plugin-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1674449588929,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a070ca1132b89167c7164392d5bc46bf","name":"ros-noetic-rviz-imu-plugin","requires":[],"size":107649,"version":"1.2.5","binstar":{"package_id":"63cde835912363225be18fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c2bee5d07025c33bc4449ad6cac56595e916b906a2d74fdbd593e2161cd1262"},"ros-noetic-costmap-converter-0.0.13-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1674449757980,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c390b6d198c447a0a22e461d2de22bf5","name":"ros-noetic-costmap-converter","requires":[],"size":429039,"version":"0.0.13","binstar":{"package_id":"63cde836c37c80a75b25a534","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edc1b8380c017e0b93daa7cca897550ed865f026ac19f0e7b7539cb29feab87e"},"ros-noetic-imu-tools-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-imu-complementary-filter","ros-noetic-imu-filter-madgwick","ros-noetic-rviz-imu-plugin"],"build":"py39h00b06ca_17","timestamp":1674450879286,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"28ff4c677fea770b3de7baa86aec1e4d","name":"ros-noetic-imu-tools","requires":[],"size":9957,"version":"1.2.5","binstar":{"package_id":"63cded40912363225be2beb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"858913d77e7ca853dd18c12f9dd53493167f35f4d8a420042b88be9319e12d58"},"ros-noetic-urdf-sim-tutorial-0.5.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-joint-state-controller","ros-noetic-position-controllers","ros-noetic-robot-state-publisher","ros-noetic-rqt-robot-steering","ros-noetic-rviz","ros-noetic-urdf-tutorial","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674451753530,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ad629603c5d681d14ca1e09b89417313","name":"ros-noetic-urdf-sim-tutorial","requires":[],"size":19727,"version":"0.5.1","binstar":{"package_id":"63cdf1add0e8c095e234b6d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c08c5063069b9cd4d70db732ca56db6b09d4f058ad2da606f522cae0dc398f9"},"ros-noetic-hector-gazebo-plugins-0.5.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gazebo","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-ros","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674440039035,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"64e6e657fe04dcaf048b8037b9524f20","name":"ros-noetic-hector-gazebo-plugins","requires":[],"size":680833,"version":"0.5.4","binstar":{"package_id":"63cdf1e2c37c80a75b2892e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cd6b922b45409647414c151d60143b7126b303097a8e58cbad93be75247e1a2"},"ros-noetic-gazebo-plugins-2.9.2-py39h8c2ef58_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-ros","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-polled-camera","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","tbb >=2021.7.0"],"build":"py39h8c2ef58_17","timestamp":1674440757012,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9ec72d2d8d9f63e9efb1a3ea366514c3","name":"ros-noetic-gazebo-plugins","requires":[],"size":2206159,"version":"2.9.2","binstar":{"package_id":"63cdf1ecc37c80a75b289417","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10990a484850a41ef806a79852926bc6ee746f945a7b2dfcf046ae9c8a7cb8a7"},"ros-noetic-nav-core-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674450060926,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"49bb84bde6c57a152080fe02b525a0b7","name":"ros-noetic-nav-core","requires":[],"size":15683,"version":"1.17.3","binstar":{"package_id":"63cdf328b23346582c88f8ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50217d099c1d3fe42db61cd20d8a45fcd184791f5a9adbb64ae3b01e68ba5be2"},"ros-noetic-gazebo-ros-pkgs-2.9.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros"],"build":"py39h00b06ca_17","timestamp":1674449954631,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6fb20953f1cdaf27d15a940c918e62b1","name":"ros-noetic-gazebo-ros-pkgs","requires":[],"size":10198,"version":"2.9.2","binstar":{"package_id":"63cdf5458ff1ad27425fd4b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b57762094f105f2784254ff2e73ca1579582afff0e3f6a446e063c1a31c27338"},"ros-noetic-mbf-costmap-core-0.4.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-mbf-abstract-core","ros-noetic-mbf-utility","ros-noetic-nav-core","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674451477568,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"53af24956f5b9caefa873348e24507a9","name":"ros-noetic-mbf-costmap-core","requires":[],"size":16032,"version":"0.4.0","binstar":{"package_id":"63cdf547989160afcf6c8e0e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee52735bd998034b2795ee0e22adf5f6fa720f8f1ced7f60bbe2c42ebd5e9c96"},"ros-noetic-jackal-gazebo-0.4.0-py39h5cf4051_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","ros-noetic-effort-controllers","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-gazebo-ros-pkgs","ros-noetic-hector-gazebo-plugins","ros-noetic-jackal-control","ros-noetic-jackal-description","ros-noetic-joy","ros-noetic-position-controllers","ros-noetic-velocity-controllers","ros-noetic-velodyne-simulator"],"build":"py39h5cf4051_3","timestamp":1674451900263,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"300398aa4466172fe8098a43ea0947b1","name":"ros-noetic-jackal-gazebo","requires":[],"size":837924,"version":"0.4.0","binstar":{"package_id":"63ce106a208d2222c0b2adc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47c2be2be27b069ff25370e051c5a2a7a0ba81bce7c7fc2349d1a1e51f4a4b5b"},"ros-noetic-franka-gazebo-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-boost-sml","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-eigen-conversions","ros-noetic-franka-example-controllers","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-kdl-parser","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-roslaunch","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-transmission-interface","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674449934820,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a06a96ff9d2708216366b15db1b857b3","name":"ros-noetic-franka-gazebo","requires":[],"size":499387,"version":"0.10.1","binstar":{"package_id":"63ce1119912363225bed2e60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75fa3aa2096b60627956e74cef409b6a13605cfce5af22fed595f2c11de8a710"},"ros-noetic-moveit-core-1.1.11-py39h6709bc1_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","console_bridge >=1.0.2,<1.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-geometric-shapes","ros-noetic-geometry-msgs","ros-noetic-kdl-parser","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-pluginlib","ros-noetic-pybind11-catkin","ros-noetic-random-numbers","ros-noetic-rosconsole","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-ruckig","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-srdfdom","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","ros-noetic-xmlrpcpp","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39h6709bc1_17","timestamp":1674449942316,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d346406e7d88638197cb4c95fca98f02","name":"ros-noetic-moveit-core","requires":[],"size":1782581,"version":"1.1.11","binstar":{"package_id":"63ce1394cd65eb0e14c9f42f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a14d41e3257c7690d951d04c4cfb9fae7113cb0aa0fabdd77bba32e7ff8fc861"},"ros-noetic-clear-costmap-recovery-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674451544388,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e610ea388c722927b936b88e2fe47395","name":"ros-noetic-clear-costmap-recovery","requires":[],"size":43412,"version":"1.17.3","binstar":{"package_id":"63ce1739989160afcf72bf28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5c4f3e2b11c361e3eae953dba644167b9d13b0a59fd97ff98d30c9bae418cec"},"ros-noetic-navfn-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674451395533,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a8078752e4974dbda2230955530381fd","name":"ros-noetic-navfn","requires":[],"size":137176,"version":"1.17.3","binstar":{"package_id":"63ce173b68b198bb951c5e50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b467c5b19d52b4bc531947a916b3b36828c32d991b0e64c8a35574d87e652261"},"ros-noetic-base-local-planner-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39h00b06ca_17","timestamp":1674451216845,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"82694d6e06cc380313fba855fbb863ba","name":"ros-noetic-base-local-planner","requires":[],"size":268203,"version":"1.17.3","binstar":{"package_id":"63ce173e8ff1ad27426d0557","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e089544782a16aeea6e7af18ea10e32d496d10a48082f12822707098409b42e4"},"ros-noetic-franka-ros-0.10.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-control","ros-noetic-franka-description","ros-noetic-franka-example-controllers","ros-noetic-franka-gazebo","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-franka-visualization"],"build":"py39h00b06ca_17","timestamp":1674450984966,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"442348c5faa28ca87da0910a3098886d","name":"ros-noetic-franka-ros","requires":[],"size":10330,"version":"0.10.1","binstar":{"package_id":"63ce1831dbdf7335210a719c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e90094c4caa654177b6d2eced5d77a46c8a0fe01f8bde802cea1dc17a4227370"},"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-conversions","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-kdl"],"build":"py39h00b06ca_17","timestamp":1674450997909,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bedce6949610ab3fb665b36120f6fbe7","name":"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":140436,"version":"0.8.2","binstar":{"package_id":"63ce1a25d0e8c095e24669c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84ddf027e9882fa8cf85b3cef477b47867063bf7a765a761b510126e238f42f3"},"ros-noetic-moveit-ros-occupancy-map-monitor-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-pluginlib","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674450987369,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"42f6d6f47d8db2dbd7c8187c3b0c4a25","name":"ros-noetic-moveit-ros-occupancy-map-monitor","requires":[],"size":148958,"version":"1.1.11","binstar":{"package_id":"63ce1b09dbdf7335210c4582","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c55d775474d28b53d70dec80b2b9f267c58d01c3a96c9991a79b062bd275acf3"},"ros-noetic-moveit-simple-controller-manager-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674451707503,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ac8c801b2408ecb61788c8b3c2834148","name":"ros-noetic-moveit-simple-controller-manager","requires":[],"size":198915,"version":"1.1.11","binstar":{"package_id":"63ce1b0d989160afcf738400","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08ea4fef5cbc252488ee98e571d7131b0561fe0173352234b727aced0e23580d"},"ros-noetic-chomp-motion-planner-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1674451343270,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f7ae54194af72d5301f39eb2df5b181e","name":"ros-noetic-chomp-motion-planner","requires":[],"size":145474,"version":"1.1.11","binstar":{"package_id":"63ce1bdac37c80a75b3d8f45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"630548d076c376736c84132b9be99abfe5a9e7865442d087fbd0198426ae73b4"},"ros-noetic-rotate-recovery-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674452785693,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"a03243b020dab5e24791a8fd9e9ce033","name":"ros-noetic-rotate-recovery","requires":[],"size":37267,"version":"1.17.3","binstar":{"package_id":"63ce1ed5989160afcf744ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e3eede2ee95322710e0195c4c7374eccaa196a41db1549245d845e37efd1ccd"},"ros-noetic-moveit-resources-prbt-moveit-config-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-support","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674453004190,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"bf27723dc40bb6a2c1200eabf48a5bc3","name":"ros-noetic-moveit-resources-prbt-moveit-config","requires":[],"size":25133,"version":"0.8.2","binstar":{"package_id":"63ce205359c09271a42e43a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c13a7cb4bd55af702e653cd55df81f0ec45c6d4c76667e3272e1f809edf00bb"},"ros-noetic-moveit-ros-control-interface-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-controller-manager-msgs","ros-noetic-moveit-core","ros-noetic-moveit-simple-controller-manager","ros-noetic-pluginlib","ros-noetic-trajectory-msgs"],"build":"py39h00b06ca_17","timestamp":1674452934040,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"52ee857c0d310620b1f85dbddb224dda","name":"ros-noetic-moveit-ros-control-interface","requires":[],"size":169507,"version":"1.1.11","binstar":{"package_id":"63ce205568b198bb951d6290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"575d12f7c6f681987aea39784b5ee74e572c0db377a323ae6d0aa5792186c059"},"ros-noetic-moveit-ros-planning-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-srdfdom","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","ros-noetic-urdf"],"build":"py39h00b06ca_17","timestamp":1674452626795,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e992a324a5d0dc83937c69205eb68dd4","name":"ros-noetic-moveit-ros-planning","requires":[],"size":1078828,"version":"1.1.11","binstar":{"package_id":"63ce2059c37c80a75b3f5ec4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e8a9000b85c8be0ea0a2b31d9847e9d27335bc1ffa694dcbd9c62452de48be6"},"ros-noetic-simulators-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros-pkgs","ros-noetic-robot","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins"],"build":"py39h00b06ca_17","timestamp":1674455831220,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5803e43c61bcf4785c2474145d1895be","name":"ros-noetic-simulators","requires":[],"size":11094,"version":"1.5.0","binstar":{"package_id":"63ce2bed0273ee116afd146c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b3d2abf5a52881d9cfa21bde8589385d465f72a639ed5a958885d576495bc51"},"ros-noetic-moveit-kinematics-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libcxx >=14.0.6","lxml","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-kdl","urdfdom"],"build":"py39h00b06ca_17","timestamp":1674456068367,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"71310460fde33a586a992de2190e3671","name":"ros-noetic-moveit-kinematics","requires":[],"size":296598,"version":"1.1.11","binstar":{"package_id":"63ce2f148ff1ad2742762b05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08b001df3fce733bd673421829f9bf967089644bcbec4e72b05ae77e5572249a"},"ros-noetic-moveit-ros-robot-interaction-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674456614201,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"434c61dbd5fdc26d747b69fd645bd81c","name":"ros-noetic-moveit-ros-robot-interaction","requires":[],"size":128102,"version":"1.1.11","binstar":{"package_id":"63ce2f19d0e8c095e251962f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a44c65c091b29c0a47135052ab4452eb0791523a41bd06a5593c099c48cd83e"},"ros-noetic-moveit-ros-perception-1.1.11-py39h32736b0_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-moveit-ros-planning","ros-noetic-nodelet","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","xorg-libx11","xorg-libxext"],"build":"py39h32736b0_17","timestamp":1674456840243,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7fd59e3d31e4819e6f95939f53ea8ce9","name":"ros-noetic-moveit-ros-perception","requires":[],"size":331940,"version":"1.1.11","binstar":{"package_id":"63ce2f1c912363225bf5fbe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f9686b70d27ddb7d00d36344bf34cec4cda282b2fc421032dfacc53b4c303a8"},"ros-noetic-move-base-1.17.3-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-base-local-planner","ros-noetic-clear-costmap-recovery","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-move-base-msgs","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-navfn","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rotate-recovery","ros-noetic-std-srvs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674456455650,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"efd96cf2fa6c278e42b51b0917a07bb2","name":"ros-noetic-move-base","requires":[],"size":288269,"version":"1.17.3","binstar":{"package_id":"63ce2f222b70bce8309b1ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6cf5641e7d6f61e2e081b205880a7420f71e7fda0419baa2f1f087097d59e591"},"ros-noetic-moveit-ros-warehouse-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-warehouse-ros"],"build":"py39h00b06ca_17","timestamp":1674456296345,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"3f1ef1cd7c0db70f3a8b1479a1ba4cfb","name":"ros-noetic-moveit-ros-warehouse","requires":[],"size":455174,"version":"1.1.11","binstar":{"package_id":"63ce2f275a31eb90f6111bd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c63e1552b20eaa57572c1f704fc7cd2016e6b3350f5ebdf2f835897d8fe60385"},"ros-noetic-turtlebot3-navigation-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-amcl","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-turtlebot3-bringup"],"build":"py39h00b06ca_17","timestamp":1674460922600,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c5e04dbb552cc0ccd008aa8f4d398519","name":"ros-noetic-turtlebot3-navigation","requires":[],"size":18492,"version":"1.2.5","binstar":{"package_id":"63ce3c010273ee116a00cb87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7eff3fcf64918c1423df6b5d0beb59b9ae21bb36e676f2bbd450a866707dd4c"},"ros-noetic-moveit-ros-move-group-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-moveit-core","ros-noetic-moveit-kinematics","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674459778626,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"051d12a850725ac945dcfe69885f4f33","name":"ros-noetic-moveit-ros-move-group","requires":[],"size":402676,"version":"1.1.11","binstar":{"package_id":"63ce3cc02ff78d332ee8d57b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8c2be018a95af7e0a3cdda9697b41e34ac40a92034b30d8a6b76325f1f6f645"},"ros-noetic-moveit-planners-ompl-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-ompl","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2"],"build":"py39h00b06ca_17","timestamp":1674460189636,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0b7401764f1e43397c4326c08c723d66","name":"ros-noetic-moveit-planners-ompl","requires":[],"size":468452,"version":"1.1.11","binstar":{"package_id":"63ce3cc6912363225bfac243","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81f50bb28a55accb6798f7890c5d3c9fd84cd907c2170c0c4781018dba0d2240"},"ros-noetic-moveit-fake-controller-manager-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674459911085,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6732cc5a80b64ff4511aa6fe7d8c6017","name":"ros-noetic-moveit-fake-controller-manager","requires":[],"size":66630,"version":"1.1.11","binstar":{"package_id":"63ce3ccbdbdf7335211c754c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a36e03888107720cdd6d8bd5006fe776c47c4a9c81e7f15552bd911633df55c6"},"ros-noetic-moveit-resources-prbt-pg70-support-0.8.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-moveit-config","ros-noetic-moveit-resources-prbt-support","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674460282138,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"511c5dd6fef9d572a353f5c206296525","name":"ros-noetic-moveit-resources-prbt-pg70-support","requires":[],"size":17755,"version":"0.8.2","binstar":{"package_id":"63ce3cce912363225bfae548","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f19d15186d6998e93ab7dc7704a66e3f7a5a39897588adbbfa1b60a1e89ee95"},"ros-noetic-turtlebot3-1.2.5-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-example","ros-noetic-turtlebot3-navigation","ros-noetic-turtlebot3-slam","ros-noetic-turtlebot3-teleop"],"build":"py39h00b06ca_17","timestamp":1674466751716,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e019cee8655408e89000a2f5e0af8deb","name":"ros-noetic-turtlebot3","requires":[],"size":9195,"version":"1.2.5","binstar":{"package_id":"63ce40bc5a31eb90f6189a76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a19cd88bd6b0e2200840b1a0d12a5f5cddbc7df383b23b085f5254a2691d7c17"},"ros-noetic-desktop-full-1.5.0-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-desktop","ros-noetic-perception","ros-noetic-simulators","ros-noetic-urdf-sim-tutorial"],"build":"py39h00b06ca_17","timestamp":1674471202185,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c8f5c505d41b4eb99e6683a861598b02","name":"ros-noetic-desktop-full","requires":[],"size":11764,"version":"1.5.0","binstar":{"package_id":"63ce4a115a31eb90f61d4ea8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c469dc9c9b491627bcd5aefb6dea00e8387a865879ea8ef02fc87e24532a9f7"},"ros-noetic-mavros-msgs-1.16.0-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39h00b06ca_19","timestamp":1687736713164,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e1548c1ff4aa42d9a41ff888ed9e403f","name":"ros-noetic-mavros-msgs","requires":[],"size":627863,"version":"1.16.0","binstar":{"package_id":"63ce567f2ff78d332ef49b71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85f35c4d31c588aff99c87fb9a1e67d7bbea2e821fd5431e19dfdb605621afe4"},"ros-noetic-mavros-msgs-1.17.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706673867451,"md5":"73513421b6952b32dbc6f6192f33bab4","name":"ros-noetic-mavros-msgs","requires":[],"size":652677,"version":"1.17.0","binstar":{"package_id":"63ce567f2ff78d332ef49b71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f15a2d2aa5cb0395938f85c50547b3cc12dfdcad009310fbd802be1f90e483db"},"ros-noetic-plotjuggler-ros-1.7.0-py39h20fafc8_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-plotjuggler","ros-noetic-plotjuggler-msgs","ros-noetic-rosbag-storage","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h20fafc8_18","timestamp":1681697146121,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e2d49a57fd5fbbd63b9add901cf0a0c3","name":"ros-noetic-plotjuggler-ros","requires":[],"size":1023878,"version":"1.7.0","binstar":{"package_id":"63ce569cd0e8c095e26a1f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02cc47a75bede4dde005e73110e0eb0bd74932e0fd36b6b119911c32dba641f0"},"ros-noetic-moveit-plugins-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-fake-controller-manager","ros-noetic-moveit-ros-control-interface","ros-noetic-moveit-simple-controller-manager"],"build":"py39h00b06ca_17","timestamp":1674469850692,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"724c6029ea655b47a91a9a82a64c094f","name":"ros-noetic-moveit-plugins","requires":[],"size":8638,"version":"1.1.11","binstar":{"package_id":"63ce5b7bc37c80a75b67fb09","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fba5dfa0179716caed8652ca0fd1defee4052f5029ba8e6503d61110386368b4"},"ros-noetic-moveit-ros-benchmarks-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39h00b06ca_17","timestamp":1674470061246,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"64ea763640c4f1f6a3ac4b9d4560420a","name":"ros-noetic-moveit-ros-benchmarks","requires":[],"size":281133,"version":"1.1.11","binstar":{"package_id":"63ce5b7d989160afcf843099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6603ef53568122e7fee5474f084208ec68bb69407539bc7ca0167c8cc10ec23"},"ros-noetic-moveit-ros-manipulation-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39h00b06ca_17","timestamp":1674469780659,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"da4e0be5c4c87467a76f98b166331681","name":"ros-noetic-moveit-ros-manipulation","requires":[],"size":335378,"version":"1.1.11","binstar":{"package_id":"63ce64568ff1ad274294d319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19ddf5196b1d97bccc61becf6a266d6e993d43d500db93e00cb504a5c5a227ef"},"ros-noetic-teb-local-planner-0.9.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-base-local-planner","ros-noetic-costmap-2d","ros-noetic-costmap-converter","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-libg2o","ros-noetic-mbf-costmap-core","ros-noetic-mbf-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39h00b06ca_17","timestamp":1674470393434,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"42c0373955cd7c039368422c5eef009e","name":"ros-noetic-teb-local-planner","requires":[],"size":859560,"version":"0.9.1","binstar":{"package_id":"63ce645c0273ee116a0da15c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f0e4cceb51a14979f8b14e2b42fc22c770e91cf704d9941784335f7165b6e3a"},"ros-noetic-moveit-ros-planning-interface-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-eigenpy","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674471096602,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0aa8fa65d0247aa49b414738d48f204a","name":"ros-noetic-moveit-ros-planning-interface","requires":[],"size":623363,"version":"1.1.11","binstar":{"package_id":"63ce672986de531a28e92324","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4626d610dc353382ecbd6f649d0851bb9cf1a43511695bfd85f65d6ed55c1b36"},"ros-noetic-moveit-ros-visualization-1.1.11-py39h948a3ee_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-interactive-markers","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-warehouse","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rviz","ros-noetic-tf2-eigen","xorg-libx11","xorg-libxext"],"build":"py39h948a3ee_17","timestamp":1674471918553,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"72acfd1988b8ca07371b8f36631584ab","name":"ros-noetic-moveit-ros-visualization","requires":[],"size":681211,"version":"1.1.11","binstar":{"package_id":"63ce6b2d68b198bb95298494","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58daf7ff0313db67b1300405e06f013d47f21e32b7245993703614989e0d960e"},"ros-noetic-moveit-commander-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","assimp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-planning-interface","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-tf"],"build":"py39h00b06ca_17","timestamp":1674472024406,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"67ea614dce676744d4b82205acea329e","name":"ros-noetic-moveit-commander","requires":[],"size":87482,"version":"1.1.11","binstar":{"package_id":"63ce6b35b23346582ca72eb0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9917722638ee57be0f219d9707af3454a06e8f5bb6946261b59d8c94fa02316"},"ros-noetic-moveit-planners-chomp-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h00b06ca_17","timestamp":1674472224408,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d0e02c9b9dc7b9e088316dc2ea1fa7bc","name":"ros-noetic-moveit-planners-chomp","requires":[],"size":36768,"version":"1.1.11","binstar":{"package_id":"63ce6b38dbdf7335213f6181","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77ace8d1602a4187d9474558d31ee21436b353c662c3fda0ba299c4d29e49ee3"},"ros-noetic-moveit-setup-assistant-1.1.11-py39h8db727d_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-visualization","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rviz","ros-noetic-srdfdom","ros-noetic-urdf","ros-noetic-xacro","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h8db727d_17","timestamp":1674472960050,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5b449d88394f8a15e6dbfc52ea11ed47","name":"ros-noetic-moveit-setup-assistant","requires":[],"size":1034639,"version":"1.1.11","binstar":{"package_id":"63ce6ef914201bfa45b9c36f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27e8c3256230b545b255490df3d7654a7df5680e17a235ce522a06593c84679d"},"ros-noetic-pilz-industrial-motion-planner-testutils-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-msgs"],"build":"py39h00b06ca_17","timestamp":1674473142559,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e00d4db6e7ad822e4a2cf92fbee44cb6","name":"ros-noetic-pilz-industrial-motion-planner-testutils","requires":[],"size":148773,"version":"1.1.11","binstar":{"package_id":"63ce6f01c37c80a75b7789af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cff3d1586e9711da0047c8025414834d17d42afe82c16e80264aeeb60f8ca344"},"ros-noetic-moveit-ros-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-benchmarks","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-visualization","ros-noetic-moveit-ros-warehouse"],"build":"py39h00b06ca_17","timestamp":1674473204412,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6463891b4f711ad4b5f8a134d0ee1a04","name":"ros-noetic-moveit-ros","requires":[],"size":10172,"version":"1.1.11","binstar":{"package_id":"63ce6f048ff1ad27429d0182","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55379064ed1b90aab6bf75b2a55ca2ae25521c24c4960c2491b3f247dc51a52f"},"ros-noetic-moveit-planners-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-planners-chomp","ros-noetic-moveit-planners-ompl","ros-noetic-pilz-industrial-motion-planner"],"build":"py39h00b06ca_17","timestamp":1674474157888,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"5b103ac55cf8c875442b2d9004527fcf","name":"ros-noetic-moveit-planners","requires":[],"size":9353,"version":"1.1.11","binstar":{"package_id":"63ce72eb14201bfa45ba6e16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d1b56fe22260d57a7724029d347b4a78c6fc8abb92204947c64c6cc9d8f3b88"},"ros-noetic-pilz-industrial-motion-planner-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-limits-interface","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39h00b06ca_17","timestamp":1674473940604,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"664b0ee6df6c6650cd872e181435cec9","name":"ros-noetic-pilz-industrial-motion-planner","requires":[],"size":577866,"version":"1.1.11","binstar":{"package_id":"63ce72eda64974fd09454e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee1c5a096bd356ade2a6b92fa042689380662564a1193f61eebcd3c2cb4ea2c7"},"ros-noetic-panda-moveit-config-0.8.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-description","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-moveit-fake-controller-manager","ros-noetic-moveit-kinematics","ros-noetic-moveit-planners-ompl","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-visualization","ros-noetic-moveit-setup-assistant","ros-noetic-moveit-simple-controller-manager","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39h00b06ca_17","timestamp":1674474089890,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"de393c6bbd2dd68aa5ed110e86faee9f","name":"ros-noetic-panda-moveit-config","requires":[],"size":32493,"version":"0.8.1","binstar":{"package_id":"63ce72f3c37c80a75b7aff5e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7df303a020f0e4da871577e5109135e9e6c3b3e6d6cb407b4c75fd027845b3d0"},"ros-noetic-moveit-1.1.11-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":false,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-planners","ros-noetic-moveit-plugins","ros-noetic-moveit-ros","ros-noetic-moveit-setup-assistant"],"build":"py39h00b06ca_17","timestamp":1674474213631,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f36d4ae158d322e88839424b1de32409","name":"ros-noetic-moveit","requires":[],"size":10517,"version":"1.1.11","binstar":{"package_id":"63ce72f6989160afcf8c91c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"024f28a52cca4f7958823bf827775dd2ce1c104c4e54f5c2381c8cab8d236294"},"ros-noetic-fcl-0.6.1-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","eigen","libccd-double >=2.1,<2.2.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"build":"py39h00b06ca_17","timestamp":1674541477518,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f2f8ab7c4fb797bc4be1bd74f752a032","name":"ros-noetic-fcl","requires":[],"size":1419483,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31c018ce7bbbcd204073c598572f77799d579be95412ebcac417690a5f8100e3"},"ros-noetic-fcl-0.6.1-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","eigen","libccd-double >=2.1,<2.2.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706526930239,"md5":"85b9f8f370a512ffdb21f5285165c1d1","name":"ros-noetic-fcl","requires":[],"size":1442699,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c244657c77bf79b9e4e71e8900c9ebb7b5a5545e4cbf25e162d43f81e82993cb"},"ros-noetic-sound-play-0.3.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","gst-plugins-base","gst-plugins-good","gst-plugins-ugly","gstreamer","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pygobject","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-audio-common-msgs","ros-noetic-diagnostic-msgs","ros-noetic-message-runtime","ros-noetic-resource-retriever","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy"],"build":"py39h00b06ca_17","timestamp":1675193542294,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"c77ebda45271884ff01f4ae197e4649c","name":"ros-noetic-sound-play","requires":[],"size":283059,"version":"0.3.16","binstar":{"package_id":"63d6dd63dbdf7335211b72d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbad17deb1b794aea905ebbd7dbfa8e4c0e0194d257cd0a5e141cbd3954079ea"},"ros-noetic-audio-common-msgs-0.3.16-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1675193295335,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e5ecd3925aa5a6faf31146330f29f876","name":"ros-noetic-audio-common-msgs","requires":[],"size":33915,"version":"0.3.16","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"063002e68bfa693317f5742dad374b5b2c380565de6731187f1e9c65a5c52fe9"},"ros-noetic-pid-0.0.28-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39h00b06ca_17","timestamp":1675193442800,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"145caa15f0a7a8f919f658347c4bb965","name":"ros-noetic-pid","requires":[],"size":144583,"version":"0.0.28","binstar":{"package_id":"63d96b6a912363225b710bc3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d2389691ecd3a07e5adbb2342179b92c407a055cbd19886cc994e718395df34b"},"ros-noetic-fake-localization-1.17.3-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nav-msgs","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2-ros"],"subdir":"osx-64","timestamp":1692221317567,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py39h00b06ca_19","md5":"58c709f1cdea8be888cc11c741ee5c75","name":"ros-noetic-fake-localization","requires":[],"size":115742,"version":"1.17.3","binstar":{"package_id":"63e587aad831fccc8a2e3e43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce95e393d9f53f99d1e3dea59b2238a1556730fc51bf05e8233217c6b7664dcd"},"ros-noetic-rgbd-launch-2.4.0-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-nodelet","ros-noetic-tf2-ros"],"build":"py39h00b06ca_18","timestamp":1682028326176,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"7f7011d99969ece8ff2e6d6adea2b090","name":"ros-noetic-rgbd-launch","requires":[],"size":16523,"version":"2.4.0","binstar":{"package_id":"63e587ac0ac8211534858ecf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d8308c493919c941916da0501a35ab1f423b4bb8ee1b67ea644545a076a8d24"},"ros-noetic-rosauth-1.0.1-py39hfa75220_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39hfa75220_17","timestamp":1676582602386,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"750c081b46b92a0b6f6698a79d0040b8","name":"ros-noetic-rosauth","requires":[],"size":54451,"version":"1.0.1","binstar":{"package_id":"63ee9a01f048dbdee41065f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d5628a0c95833ef12f000da83afa668aa541310bbf68d9c10fd9488d2c72906"},"ros-noetic-rosauth-1.0.1-py311h43fc731_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h43fc731_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","openssl >=3.2.0,<4.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574884041,"md5":"a116bbe1bc18afe7bb339d00b68f3d8d","name":"ros-noetic-rosauth","requires":[],"size":54819,"version":"1.0.1","binstar":{"package_id":"63ee9a01f048dbdee41065f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34f811a5fc2a23d554c72e8f46c6ed4c80a96781b0ee0adf6827fac462acf542"},"ros-noetic-rosbag-storage-1.16.0-py39h7683178_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost-cpp","bzip2 >=1.0.8,<2.0a0","console_bridge >=1.0.2,<1.1.0a0","gpgme >=1.18.0,<1.19.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-pluginlib","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-roslz4","ros-noetic-rostime"],"build":"py39h7683178_17","timestamp":1676580971150,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"e5390f734e34793874d542b5e774a7d6","name":"ros-noetic-rosbag-storage","requires":[],"size":190198,"version":"1.16.0","binstar":{"package_id":"63ee9a03f048dbdee410665b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73511a1c3996669365fc34681755c9c44871b3c211e0c851df5afa4d7838a526"},"ros-noetic-rosbag-storage-1.16.0-py311h18dcbe4_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h18dcbe4_20","build_number":20,"depends":["__osx >=10.14","boost-cpp","bzip2 >=1.0.8,<2.0a0","console_bridge >=1.0.2,<1.1.0a0","gpgme >=1.18.0,<1.19.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","openssl >=3.2.0,<4.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-pluginlib","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-roslz4","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706574972909,"md5":"a23674a5d240f0f2bc3fe757eadac36f","name":"ros-noetic-rosbag-storage","requires":[],"size":189852,"version":"1.16.0","binstar":{"package_id":"63ee9a03f048dbdee410665b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75506712ed81c18b83bbc952a998a8a253e837e7c919cd9836d6b42aa1642974"},"ros-noetic-librealsense2-2.50.0-py39hfa75220_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libusb >=1.0.26,<2.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hfa75220_17","timestamp":1676582467295,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"78a08a307da54fa4676d2ce662748044","name":"ros-noetic-librealsense2","requires":[],"size":17151437,"version":"2.50.0","binstar":{"package_id":"63ee9d27b9c122563cec392b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10896bf25154f9e239e5ef3961d1ee8f07181e26cd73de8e97589430c10bb8cd"},"ros-noetic-webkit-dependency-1.1.2-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqtwebengine","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h00b06ca_17","timestamp":1676585269855,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2291b2f82c13e6b7e21657d46e4696b5","name":"ros-noetic-webkit-dependency","requires":[],"size":10763,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a68694081885174c8233860561d3ae88a696b7cbc01cfde9526131f67666c6fb"},"ros-noetic-webkit-dependency-1.1.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","pyqtwebengine","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706525320868,"md5":"de1694fe68e5d357f85651a7a54e7a10","name":"ros-noetic-webkit-dependency","requires":[],"size":11255,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a6b0aae4ef1122b53658cc3c28621f2418837e736ad2c19d2989c9f1fd7ee51"},"ros-noetic-python-qt-binding-0.4.4-py39h00b06ca_17.tar.bz2":{"build_number":17,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","adwaita-icon-theme","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","xorg-libx11","xorg-libxext"],"build":"py39h00b06ca_17","timestamp":1676861437420,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"34fac8b98ad63e5a2a4a71d38277225b","name":"ros-noetic-python-qt-binding","requires":[],"size":35797,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a08951b25e6539e313176312016dab141841ad2c455bf0a0a05675d14c5e891b"},"ros-noetic-python-qt-binding-0.4.4-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","adwaita-icon-theme","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h00b06ca_18","timestamp":1681946636588,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"d80754f125f7d8f55ba1ad8db6b3e412","name":"ros-noetic-python-qt-binding","requires":[],"size":36004,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1648c27bd8d5631bd88ab5eafc77d7f35bb7a9a9abe2a6754c58b1a425a28fed"},"ros-noetic-python-qt-binding-0.4.4-py311ha3ff0c1_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311ha3ff0c1_20","build_number":20,"depends":["__osx >=10.14","adwaita-icon-theme","libcxx >=15","numpy >=1.23.5,<2.0a0","pyqt >=5.15.9,<5.16.0a0","pyqt-builder","python","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529465169,"md5":"269a07e7839f23a2f0d7448ae5b20593","name":"ros-noetic-python-qt-binding","requires":[],"size":36829,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a48eec0b2abac28794d2cd41567da8ede8083dde7b8372615fc8935f2ec78d6"},"ros-noetic-ros-babel-fish-0.9.3-py39hfa75220_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39hfa75220_18","timestamp":1678494804115,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"503f6b04d5c10c70b08cc6727e3332f3","name":"ros-noetic-ros-babel-fish","requires":[],"size":397925,"version":"0.9.3","binstar":{"package_id":"640bcb2a56f3d8408e3bd098","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94779d38760b19b4e8e957abc6307426f940dfa13232eab9b898fffce034552c"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_18","timestamp":1678494494649,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"abfc37f5179e7a9e6d3fdd3bd9838ff5","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":82887,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"472b9954f675de42a343023129b85db8e4934db2c079bfa424ce3d2ab697a3fb"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530581358,"md5":"817ae64e3ad1a94159aa4d6612b65ffb","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":85725,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbb6e429bb1605ea4ee8963a57a8a5a28667dcc1c6d928ef6f3dfebad96f770b"},"ros-noetic-foxglove-bridge-0.5.1-py39hfb758d3_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libzlib >=1.2.13,<1.3.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-ros-babel-fish","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","zlib"],"build":"py39hfb758d3_18","timestamp":1678495191622,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"b8ce57acd47f3381e83ed7fc186377c8","name":"ros-noetic-foxglove-bridge","requires":[],"size":789028,"version":"0.5.1","binstar":{"package_id":"640bcc155646df5d56040be2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b36eafb70e57581e91e3315a7c1a1b5da8668463da570ca0175523851cb6ce6"},"ros-humble-foxglove-bridge-0.5.1-py310habcd8cd_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zlib"],"build":"py310habcd8cd_3","timestamp":1678496457144,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6c6db0525a8b4653cc373d61dc755f6f","name":"ros-humble-foxglove-bridge","requires":[],"size":993390,"version":"0.5.1","binstar":{"package_id":"640bd1e40078da3fd81620c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96037fc43c4b572cd96081a08286c3bafa408a9320bdd2ed68a867d5ba598810"},"ros-noetic-graph-msgs-0.1.0-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_18","timestamp":1680039506617,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"12d22adab8398f740478df4f13033731","name":"ros-noetic-graph-msgs","requires":[],"size":33536,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a93ddb5a59d9938b4f9f92fec6259ea1345518f400cb1f564f4c255196d455bf"},"ros-noetic-graph-msgs-0.1.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530479924,"md5":"a4a315636c91a3bd3a4ea766292e9bbc","name":"ros-noetic-graph-msgs","requires":[],"size":34409,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66bcbb34e611731ae33ffc39ce86702660ccfb09c21c0343e12ba85650ee8ad8"},"ros-noetic-moveit-visual-tools-3.6.0-py39h00b06ca_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz-visual-tools","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h00b06ca_18","timestamp":1680040185982,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"19111916080b049f3181e93e9b9696df","name":"ros-noetic-moveit-visual-tools","requires":[],"size":324483,"version":"3.6.0","binstar":{"package_id":"64235f6ef4abb0819e151d80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f320db24ac730fba10dd6261f3d18c79f668d7590e91f09167fed78ea78e2421"},"ros-noetic-rviz-visual-tools-3.9.3-py39h948a3ee_18.tar.bz2":{"build_number":18,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h948a3ee_18","timestamp":1680039847808,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"8a1935895c14160a649a0fa62bbf6bed","name":"ros-noetic-rviz-visual-tools","requires":[],"size":1534485,"version":"3.9.3","binstar":{"package_id":"64235f6ff4abb0819e151dbf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e935a63811c808d9eff13797c2edbe328fa1bfa18c82fdf210e868a20c01d71"},"ros-humble-plotjuggler-3.5.1-py310hdfef08f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","cppzmq","libcxx >=14.0.6","libxcb >=1.13,<1.14.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.4,<4.4.0a0"],"build":"py310hdfef08f_3","timestamp":1681696518346,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"f02d8778ae4f13ea0b3f0af7dd3d1649","name":"ros-humble-plotjuggler","requires":[],"size":22668282,"version":"3.5.1","binstar":{"package_id":"642a21ef72efb6ba8923c015","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be051c85baf63def9cfbca419f3fb2becc32ea803c8c283164ddcb6a5dc50060"},"ros-humble-plotjuggler-msgs-0.2.3-py310h5aa156f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1681695688773,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"eca1255024f5736e76031841af167a4e","name":"ros-humble-plotjuggler-msgs","requires":[],"size":99797,"version":"0.2.3","binstar":{"package_id":"642a21f3f4abb0819ee3cabc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90c385350eea2e1cff414b215abcd4c1b9ec45bbba3630c9e6dca45c2ba19548"},"ros-humble-plotjuggler-ros-1.7.3-py310hcd329d0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-diagnostic-msgs","ros-humble-fastcdr","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-plotjuggler","ros-humble-plotjuggler-msgs","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rosbag2-transport","ros-humble-sensor-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py310hcd329d0_3","timestamp":1681696844754,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2dec8272f79ad3aa1678177ee262fa59","name":"ros-humble-plotjuggler-ros","requires":[],"size":458379,"version":"1.7.3","binstar":{"package_id":"642a21f96d6885450301f10f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebc6f354207237b5ffb62c33e4eb8b0173a345f9a233a5650c9007f8929fa66e"},"ros-noetic-microstrain-inertial-msgs-3.0.1-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39h00b06ca_19","timestamp":1687736887431,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"253312e377a2550696760ff4475df6f4","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":280210,"version":"3.0.1","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99caa2905519f11c5cf443445cab199721e31fb4f4053f88cabd841a77a66b31"},"ros-noetic-microstrain-inertial-msgs-3.2.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706530712914,"md5":"91193612cb20f556d25df22386209b34","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":302895,"version":"3.2.0","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db6a3945a9fec1f00a3168b9677f7cf28ee835e1c30ce6cc2ac448cef3852b6f"},"ros-noetic-microstrain-inertial-driver-3.0.1-py39h669ea8d_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcurl >=7.88.1,<8.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-mavros-msgs","ros-noetic-message-runtime","ros-noetic-microstrain-inertial-msgs","ros-noetic-nav-msgs","ros-noetic-nmea-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h669ea8d_19","timestamp":1687737184313,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"9652d612cef5a20303429a165534eec7","name":"ros-noetic-microstrain-inertial-driver","requires":[],"size":578460,"version":"3.0.1","binstar":{"package_id":"64670c2db8f416e9fb5ed89a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90b087eda5268aa9c5d92ee535409cb24f0344f89cb9900c1662f485bcf45b0b"},"ros-humble-actuator-msgs-0.0.1-py310h5aa156f_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_3","timestamp":1687408419578,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"6e06e195e6b59e4a39340b444e810c11","name":"ros-humble-actuator-msgs","requires":[],"size":112918,"version":"0.0.1","binstar":{"package_id":"646d616bd52c6a0ecdfb698f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e6143c1c015e67ec57a6514420054b5236d7b6002f8fafe698d8bf553349745"},"ros-humble-nav2-mppi-controller-1.1.8-py310hb503a67_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","benchmark","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xsimd","xtensor"],"build":"py310hb503a67_3","timestamp":1687408245645,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"2d3e4cfb0fbbc107aef28261febf75ff","name":"ros-humble-nav2-mppi-controller","requires":[],"size":442727,"version":"1.1.8","binstar":{"package_id":"648c6e31a55ac89ef993e285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"324a6d41048205e21398e8938f107115bac1cee384a9484f0e81cb1263d7acf4"},"ros-noetic-hpp-fcl-2.3.6-h610bb81_21.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h610bb81_21","build_number":21,"depends":["hpp-fcl 2.3.6*"],"platform":"osx","timestamp":1706523523352,"md5":"9f719b140bf60eaf037f675987b2324f","name":"ros-noetic-hpp-fcl","requires":[],"size":3768,"version":"2.3.6","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9097050a079587a81ccc2f9c69e83a03697445c2240a43e7f00dea8c25ed6050"},"ros-humble-ackermann-steering-controller-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-steering-controllers-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687846885400,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"717463c9b78601f330c4d5c6d8188fce","name":"ros-humble-ackermann-steering-controller","requires":[],"size":40986,"version":"2.23.0","binstar":{"package_id":"649a7fef9c5c2f94af0942d1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eee843d2e9cbd965cd2145b873b00b80960bc0a2f2ae55b9d5b53b7053d1763a"},"ros-humble-steering-controllers-library-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1687846280879,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"78817576430e9b3fde2b40f3ea57ba4e","name":"ros-humble-steering-controllers-library","requires":[],"size":239786,"version":"2.23.0","binstar":{"package_id":"649a7ff68ed5b16aade6fd3c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c96180fe70adac39846a20e29f27acfc48ef102242719029bef0b1d15fe0d25"},"ros-humble-bicycle-steering-controller-2.23.0-py310h5aa156f_4.tar.bz2":{"build_number":4,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-steering-controllers-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5aa156f_4","timestamp":1688020471579,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"0da4f05053967736f6bc15f9d11b8d5d","name":"ros-humble-bicycle-steering-controller","requires":[],"size":39296,"version":"2.23.0","binstar":{"package_id":"649d26023f6fef506095bdcb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b561b0ddefb266270182fc6ea58a9fbc6f3080667ec07eea14f78ae8e2402d0a"},"ros-noetic-octomap-ros-0.4.1-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39h00b06ca_19","timestamp":1688952762150,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","subdir":"osx-64","md5":"ae65ab58de6b68ea722c2aef686b55c6","name":"ros-noetic-octomap-ros","requires":[],"size":20193,"version":"0.4.1","binstar":{"package_id":"64ab5faf6bd8494aaaca1eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"036b85723d557313f5230a2df86bacabc44e9cb87f87e3264aeffca0ca29cd08"},"ros-noetic-ackermann-msgs-1.0.2-py39h00b06ca_19.tar.bz2":{"build_number":19,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"osx","depends":["__osx >=10.14","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"osx-64","timestamp":1692221433401,"arch":"x86_64","operatingsystem":"darwin","target-triplet":"x86_64-any-darwin","build":"py39h00b06ca_19","md5":"cd305067afad13ff9b8210c6c08c1521","name":"ros-noetic-ackermann-msgs","requires":[],"size":32018,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcf5e3e9f3737e22e19643fcd7c25d4ffef45488806af8a4bf4b2efc92bd0126"},"ros-noetic-ackermann-msgs-1.0.2-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706529692202,"md5":"97637eea981f3c5671ebcb4cb94864ab","name":"ros-noetic-ackermann-msgs","requires":[],"size":32371,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e29d38ef9b68bb45bbdc67d7b578d051bedcfee06daba32792703646b53e9126"},"ros-noetic-pinocchio-2.6.20-h610bb81_21.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h610bb81_21","build_number":21,"depends":["pinocchio 2.6.20*"],"platform":"osx","timestamp":1706524624521,"md5":"fa9850c620899dff0cb721d88f7b7fc6","name":"ros-noetic-pinocchio","requires":[],"size":3846,"version":"2.6.20","binstar":{"package_id":"65b70b5aee8d8b5e0ccb253e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58bf9a70cc6b2cbf04c1012250cd93782862403016e6131b26ab89418c837597"},"ros-noetic-ros-type-introspection-2.1.0-py311h907a76e_20.tar.bz2":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":true,"subdir":"osx-64","arch":"x86_64","build":"py311h907a76e_20","build_number":20,"depends":["__osx >=10.14","libcxx >=15","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706531212291,"md5":"173449bcb49b77f81803d428b6a591ac","name":"ros-noetic-ros-type-introspection","requires":[],"size":157260,"version":"2.1.0","binstar":{"package_id":"65b71c2125559064479ba7af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a8a56299cc8e81affe54eb8bce6bbe918342dca47a57eda8cd3d0a52d076f8a"}},"packages.conda":{},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"osx","arch":"x86_64","subdir":"osx-64"}} \ No newline at end of file