Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jan 2024 rebuild #124

Merged
merged 23 commits into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
498e20c
Initial steps for rebuild; Python 3.11
Tobias-Fischer Jan 19, 2024
dfaf3fd
Update ros-humble-ublox-dgnss-node.patch
Tobias-Fischer Jan 20, 2024
16a782f
A few more working packages
Tobias-Fischer Jan 20, 2024
3507e2b
Some more fixes for local osx-arm64 rebuild
Tobias-Fischer Jan 21, 2024
a1b6cd7
Try fix weird no output error by pinning conda-build
Tobias-Fischer Jan 21, 2024
fefedb2
Add helper script
Tobias-Fischer Jan 21, 2024
9b41efa
Fixup linux-64 patches
Tobias-Fischer Jan 21, 2024
792fd6b
Bump deps
Tobias-Fischer Jan 22, 2024
7cb291d
Bump fmt
Tobias-Fischer Jan 22, 2024
c62c72e
Local linux-64 builds
Tobias-Fischer Jan 22, 2024
d7480f6
Add missing mapping
Tobias-Fischer Jan 23, 2024
515cbf2
add python38 compatbility
Jan 28, 2024
7281d0d
Merge pull request #127 from 0wu/rebuild_2024
Tobias-Fischer Jan 28, 2024
69e1aed
fix a broken ament-package.patch
Jan 28, 2024
9f4850f
add support for realsense camera force using libusb to avoid v4l2/con…
Jan 28, 2024
bafa1e1
add realsense to linux_64 build
Jan 28, 2024
8de4c0e
Merge pull request #128 from 0wu/0wu.ament-package-patch2
Tobias-Fischer Jan 28, 2024
63835ea
Merge pull request #129 from 0wu/0wu.realsense
Tobias-Fischer Jan 28, 2024
4b03d31
Sync with noetic
Tobias-Fischer Feb 1, 2024
6953db8
Delete patch/ros-humble-nav2-costmap-2d.patch
Tobias-Fischer Feb 2, 2024
a72028a
Update ros-humble-nav2-mppi-controller.osx.patch
Tobias-Fischer Feb 2, 2024
15c5b27
Debug windows issues
Tobias-Fischer Feb 2, 2024
80c956d
Try more packages on Win
Tobias-Fischer Feb 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
475 changes: 291 additions & 184 deletions .ci_support/conda_forge_pinnings.yaml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .cirun.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ runners:
preemptible: false
labels:
- cirun-linux-aarch64

6 changes: 4 additions & 2 deletions .github/testpr_environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ channels:
- robostack-staging
- conda-forge
dependencies:
- python 3.10.*
- python 3.11.*
- pip
- boa
- conda-build <3.28
- rospkg
- catkin_pkg >=0.4.16
- ruamel.yaml >=0.16.6
- ruamel.yaml >=0.16.6,<0.18
- rosdistro >=0.8.0
- empy >=3.3.4
- networkx
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax
- name: Install vinca
run: |
pip install git+https://github.com/RoboStack/vinca.git
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/testpr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
platform: osx-arm64
steps:
- uses: actions/checkout@master
- name: install mamba
- name: install micromamba
uses: mamba-org/setup-micromamba@main
with:
environment-file: .github/testpr_environment.yml
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:
conda config --show channels | grep defaults && conda config --remove channels defaults
conda info
conda config --show
mamba install -y pip rospkg networkx "catkin_pkg>=0.4.16" "ruamel.yaml>=0.16.6" "rosdistro>=0.8.0" "empy>=3.3.4" boa
micromamba install -y pip rospkg networkx "catkin_pkg>=0.4.16" "ruamel.yaml>=0.16.6" "rosdistro>=0.8.0" "empy>=3.3.4" boa
- name: install vinca and boa master
shell: bash -l {0}
run: |
Expand Down
2 changes: 1 addition & 1 deletion .scripts/build_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ conda config --remove channels defaults
# conda config --set channel_priority strict

mamba update conda --yes --quiet -c conda-forge
mamba install --yes --quiet pip conda-build anaconda-client mamba boa
mamba install --yes --quiet pip conda-build=3.27 anaconda-client mamba boa

# setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
# export PATH="$HOME/miniconda/bin:$PATH"
Expand Down
2 changes: 1 addition & 1 deletion .scripts/build_osx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ conda activate base
conda config --set remote_max_retries 5

echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build."
mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build pip boa quetz-client -c conda-forge
mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build=3.27 pip boa quetz-client -c conda-forge

set -e

Expand Down
4 changes: 2 additions & 2 deletions .scripts/build_osx_arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export FEEDSTOCK_ROOT=`pwd`

echo -e "\n\nInstalling a fresh version of Miniforge."
MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
MINIFORGE_FILE="Mambaforge-MacOSX-x86_64.sh"
MINIFORGE_FILE="Mambaforge-MacOSX-arm64.sh"
curl -L -O --silent "${MINIFORGE_URL}/${MINIFORGE_FILE}"
/bin/bash $MINIFORGE_FILE -b

Expand All @@ -18,7 +18,7 @@ conda activate base
conda config --set remote_max_retries 5

echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build."
mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build pip boa quetz-client -c conda-forge
mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build=3.27 pip boa quetz-client -c conda-forge

set -e

Expand Down
5 changes: 1 addition & 4 deletions .scripts/build_win.bat
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ set "FEEDSTOCK_ROOT=%cd%"
mkdir %CONDA_BLD_PATH%
call conda index %CONDA_BLD_PATH%

call conda config --remove channels defaults
rem call conda config --remove channels defaults
call conda config --add channels conda-forge
call conda config --add channels robostack-staging
call conda config --add channels %CONDA_BLD_PATH%
Expand All @@ -40,9 +40,6 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t

:: conda remove --force m2-git

call mamba install boa
if errorlevel 1 exit 1

for %%X in (%CURRENT_RECIPES%) do (
echo "BUILDING RECIPE %%X"
cd %FEEDSTOCK_ROOT%\recipes\%%X\
Expand Down
12 changes: 7 additions & 5 deletions additional_recipes/ros2-distro-mutex/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package:
name: ros2-distro-mutex
version: 0.3.0
version: 0.5.0

build:
number: 0
string: humble
run_exports:
- "{{ pin_subpackage('ros2-distro-mutex', max_pin='x.x') }}"
weak:
- "{{ pin_subpackage('ros2-distro-mutex', max_pin='x.x') }}"

requirements:
# NOTE:
Expand All @@ -29,11 +30,11 @@ requirements:
# if the upstream package does not have run_exports
# please change it in the conda_build_config.yaml!
run_constrained:
- boost-cpp 1.78
- pcl 1.12
- boost-cpp 1.82
- libboost-devel 1.82
- pcl 1.13.1
- gazebo 11
- libpqxx 6
- setuptools 61.0.0

about:
home: https://github.com/robostack/ros-humble
Expand All @@ -45,3 +46,4 @@ about:
extra:
recipe-maintainers:
- ros-forge

48 changes: 48 additions & 0 deletions check_patches_clean_apply.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Useful script when checking whether patches apply cleanly.
# First, run `vinca` (without `-m` flag) to generate a recipe.yaml.
# Then, run this script to generate a new pseudo list that only contains sources that have patches applied.
# This you can then run through `boa` which will try and apply the patches.

import yaml
import shutil
import os

SCRIPT_DIR = './'

shutil.move(SCRIPT_DIR + '/recipe.yaml', SCRIPT_DIR + '/recipe.yaml.bak')

# Load the YAML file
with open('recipe.yaml.bak', 'r') as file:
data = yaml.safe_load(file)

prepend_data = {
'package': {
'name': 'ros-dummy',
'version': '2024.01.17'
}
}

append_data = {
'build': {
'number': 0
},
'about': {
'home': 'https://www.ros.org/',
'license': 'BSD-3-Clause',
'summary': 'Robot Operating System'
},
'extra': {
'recipe-maintainers': [
'ros-forge'
]
}
}

# Filter out entries without 'patches'
filtered_data = [entry for entry in data['source'] if 'patches' in entry]

final_data = {**prepend_data, 'source': filtered_data, **append_data}

# Write the filtered data back to a YAML file
with open('recipe.yaml', 'w') as file:
yaml.dump(final_data, file, sort_keys=False)
17 changes: 5 additions & 12 deletions conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,30 +1,23 @@
assimp:
- 5.2.5
hdf5:
- 1.12.2
gazebo:
- '11'
libpqxx:
- 6
numpy:
- 1.21
pcl:
- 1.12.1
- 1.23
ogre:
- 1.12.*
qt:
- 5.15
qt_main:
- 5.15
setuptools:
- 69

cdt_name: # [linux]
- cos7 # [linux]

python:
- 3.10.* *_cpython
- 3.11.* *_cpython
python_impl:
- cpython

# Project overrides
macos_min_version: # [osx and x86_64]
- 10.14 # [osx and x86_64]
macos_machine: # [osx]
Expand Down
3 changes: 1 addition & 2 deletions env/robostackenv.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name: robostackenv
channels:
- robostack-humble
- robostack-staging
- conda-forge
dependencies:
- python=3.10
- python=3.11
- conda-build
- anaconda-client
- mamba
Expand Down
10 changes: 7 additions & 3 deletions patch/dependencies.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
ament_package:
add_host: ['importlib_resources']
foxglove_bridge:
add_host: ["ros-humble-ament-cmake"]
ros_ign_interfaces:
add_host: ["ros-humble-rcl-interfaces"]
cartographer_ros:
add_host: ["cartographer 2.*"]
add_host: ["cartographer 2.*", "libboost-devel"]
libyaml_vendor:
add_host: ["yaml-cpp", "yaml"]
add_run: ["yaml-cpp", "yaml"]
Expand Down Expand Up @@ -34,9 +36,9 @@ rviz_ogre_vendor:
add_host: ["zlib", "freeimage", "freetype", "assimp", "zziplib", "pugixml"]
add_run: ["assimp"]
pcl_conversions:
add_host: ["REQUIRE_OPENGL"]
add_host: ["REQUIRE_OPENGL", "libboost-devel"]
pcl_ros:
add_host: ["REQUIRE_OPENGL"]
add_host: ["REQUIRE_OPENGL", "libboost-devel"]
rviz_rendering:
add_host: ["glew"]
behaviortree_cpp_v3:
Expand Down Expand Up @@ -156,3 +158,5 @@ slam_toolbox:
vision_msgs_rviz_plugins:
add_build: [{sel(build_platform != target_platform): qt-main}]
add_host: ["REQUIRE_OPENGL"]
velodyne_pointcloud:
add_host: ["libboost-devel"]
65 changes: 65 additions & 0 deletions patch/ros-humble-ament-package.patch
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,68 @@ index 292e518..0000000
- ament_prepend_unique_value DYLD_LIBRARY_PATH "$AMENT_CURRENT_PREFIX/lib"
-fi
-unset _IS_DARWIN
diff --git a/ament_package/templates.py b/ament_package/templates.py
index 885b972..463453c 100644
--- a/ament_package/templates.py
+++ b/ament_package/templates.py
@@ -17,15 +17,21 @@ import re

try:
import importlib.resources as importlib_resources
-except ModuleNotFoundError:
+ assert importlib_resources.files, "importlib reousrces too old to support files, please install importlib_resources"
+except (ModuleNotFoundError, AttributeError):
import importlib_resources

IS_WINDOWS = os.name == 'nt'

+# importlib
+# DeprecationWarning: path is deprecated. Use files() instead.
+# Refer to https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy
+# for migration advice.

def get_environment_hook_template_path(name):
- with importlib_resources.path('ament_package.template.environment_hook', name) as path:
- return str(path)
+ # with importlib_resources.path('ament_package.template.environment_hook', name) as path:
+ path = importlib_resources.files('ament_package.template.environment_hook').joinpath(name)
+ return str(path)


def get_package_level_template_names(all_platforms=False):
@@ -41,8 +47,9 @@ def get_package_level_template_names(all_platforms=False):


def get_package_level_template_path(name):
- with importlib_resources.path('ament_package.template.package_level', name) as path:
- return str(path)
+ # with importlib_resources.path('ament_package.template.package_level', name) as path:
+ path = importlib_resources.files('ament_package.template.package_level').joinpath(name)
+ return str(path)


def get_prefix_level_template_names(*, all_platforms=False):
@@ -61,8 +68,9 @@ def get_prefix_level_template_names(*, all_platforms=False):


def get_prefix_level_template_path(name):
- with importlib_resources.path('ament_package.template.prefix_level', name) as path:
- return str(path)
+ # with importlib_resources.path('ament_package.template.prefix_level', name) as path:
+ path = importlib_resources.files('ament_package.template.prefix_level').joinpath(name)
+ return str(path)


def get_isolated_prefix_level_template_names(*, all_platforms=False):
@@ -81,8 +89,9 @@ def get_isolated_prefix_level_template_names(*, all_platforms=False):


def get_isolated_prefix_level_template_path(name):
- with importlib_resources.path('ament_package.template.isolated_prefix_level', name) as path:
- return str(path)
+ #with importlib_resources.path('ament_package.template.isolated_prefix_level', name) as path:
+ path = importlib_resources.files('ament_package.template.isolated_prefix_level').joinpath(name)
+ return str(path)


def configure_file(template_file, environment):
17 changes: 17 additions & 0 deletions patch/ros-humble-apriltag-ros.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c906851..b48600f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,8 +5,10 @@ project(apriltag_ros)
set(CMAKE_CXX_STANDARD 14)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- add_compile_options(-Werror -Wall -Wextra -Wpedantic)
- add_link_options("-Wl,-z,relro,-z,now,-z,defs")
+ if(NOT APPLE)
+ add_compile_options(-Werror -Wall -Wextra -Wpedantic)
+ add_link_options("-Wl,-z,relro,-z,now,-z,defs")
+ endif()
endif()

option(ASAN "use AddressSanitizer to detect memory issues" OFF)
13 changes: 13 additions & 0 deletions patch/ros-humble-bno055.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/setup.py b/setup.py
index 552531f..0774755 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ package_name = 'bno055'

setup(
name=package_name,
- version='0.4.1.',
+ version='0.4.1',
# find sub-packages automatically in order to allow sub-modules, etc. to be imported:
# packages=[package_name],
packages=find_packages(exclude=['test']),
Loading
Loading