Skip to content

Commit

Permalink
Imported upstream version '2.1.0' of 'upstream'
Browse files Browse the repository at this point in the history
  • Loading branch information
victorpaleologue committed Nov 20, 2023
1 parent cbbba8f commit d572b9e
Show file tree
Hide file tree
Showing 11 changed files with 206 additions and 110 deletions.
15 changes: 15 additions & 0 deletions .github/workflows/foxy_focal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: ros2-foxy-focal

on:
push

jobs:
ros2_foxy_focal_ci:
name: foxy (focal)
uses: ./.github/workflows/ros2.yml
with:
ROS_DISTRO: foxy
ROS_REPO: testing
OS_NAME: ubuntu
OS_CODE_NAME: focal
ALLOW_FAIL: false
15 changes: 15 additions & 0 deletions .github/workflows/galactic_focal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: ros2-galactic-focal

on:
push

jobs:
ros2_galactic_focal_ci:
name: galactic (focal)
uses: ./.github/workflows/ros2.yml
with:
ROS_DISTRO: galactic
ROS_REPO: testing
OS_NAME: ubuntu
OS_CODE_NAME: focal
ALLOW_FAIL: false
15 changes: 15 additions & 0 deletions .github/workflows/humble_jammy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: ros2-humble-jammy

on:
push

jobs:
ros2_humble_jammy_ci:
name: humble (jammy)
uses: ./.github/workflows/ros2.yml
with:
ROS_DISTRO: humble
ROS_REPO: testing
OS_NAME: ubuntu
OS_CODE_NAME: jammy
ALLOW_FAIL: false
15 changes: 15 additions & 0 deletions .github/workflows/iron_jammy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: ros2-iron-jammy

on:
push

jobs:
ros2_iron_jammy_ci:
name: iron (jammy)
uses: ./.github/workflows/ros2.yml
with:
ROS_DISTRO: iron
ROS_REPO: testing
OS_NAME: ubuntu
OS_CODE_NAME: jammy
ALLOW_FAIL: false
41 changes: 41 additions & 0 deletions .github/workflows/ros2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: ros2

on:
workflow_call:
inputs:
ROS_DISTRO:
required: true
type: string
ROS_REPO:
required: true
type: string
OS_NAME:
required: true
type: string
OS_CODE_NAME:
required: true
type: string
ALLOW_FAIL:
required: true
type: boolean

jobs:
ros2_ci:
name: ROS2
runs-on: ubuntu-latest
continue-on-error: ${{ inputs.ALLOW_FAIL }}
env:
CCACHE_DIR: "${{ github.workspace }}/.ccache"
steps:
- name: Check out the naoqi_driver2 repo
uses: actions/checkout@v2
- name: Fetch/store directory used by ccache
uses: actions/cache@v2
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ inputs.ROS_DISTRO }}-${{ inputs.ROS_REPO }}-${{github.run_id}}
restore-keys: |
ccache-${{ inputs.ROS_DISTRO }}-${{ inputs.ROS_REPO }}-
- name: Run industrial CI
uses: 'ros-industrial/industrial_ci@master'
env: ${{ inputs }}
14 changes: 14 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@
Changelog for package nao_meshes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2.1.0 (2023-11-15)
------------------
* Workaround running installer in CI
* Fix build on GitHub Actions
* Add CI
* Interactive agreement by default
Explicit option in command line to agree to license.
Improved interaction and messages.
* Update maintainers
* Rename README to README.md
* Fix error in CMakeLists.txt
* Upgrade nao_meshes package for ROS2
* Contributors: Maxime Busy, Victor Paleologue, Victor Paléologue, mbusy

0.1.13 (2022-09-07)
-------------------
* Update ERROR_FILE to ERROR_FILE_CMD in CMakeLists to avoid build crash
Expand Down
117 changes: 30 additions & 87 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,110 +1,53 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5)
project(nao_meshes)

find_package(catkin)
catkin_package()
find_package(ament_cmake REQUIRED)

# When getting a new binay, the MD5 might change, and the folder hierarchy too
# read comments below to adapt

set(TMP_DIR ${CATKIN_DEVEL_PREFIX}/tmp)

set(INSTALLER_TMP_PATH ${TMP_DIR}/tmp/installer.run)
set(TMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/tmp)
set(INSTALLER_PATH ${TMP_DIR}/installer.run)

# Try to figure out the architecture
string(FIND ${CATKIN_DEVEL_PREFIX} "i686" IS_32)
message(STATUS "Architecture is apparently 32 (-1 for no): ${IS_32}")
if(${IS_32} STREQUAL "-1")
# Trust CMAKE_SYSTEM_PROCESSOR which does not work on the farm
if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(IS_32 FALSE)
if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "$i.86$")
message(STATUS "Downloading 32-bit installer")
set(INSTALLER_URL "https://github.com/ros-naoqi/nao_meshes_installer/raw/master/naomeshes-0.6.7-linux-installer.run")
set(INSTALLER_MD5 1984b2790930044b4ee00496315c0021)
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
message(STATUS "Downloading 64-bit installer")
set(INSTALLER_URL "https://github.com/ros-naoqi/nao_meshes_installer/raw/master/naomeshes-0.6.7-linux-x64-installer.run")
set(INSTALLER_MD5 5f897a3328f217bae6c0ed2a934e524c)
else()
set(IS_32 TRUE)
endif()
message(FATAL_ERROR "Mesh installer is not compatible with your host architecture '${CMAKE_HOST_SYSTEM_PROCESSOR}'")
endif()

if (NOT ${IS_32})
message(STATUS "Downloading 64 bit installer")
file(DOWNLOAD
"https://github.com/ros-naoqi/nao_meshes_installer/raw/master/naomeshes-0.6.7-linux-x64-installer.run"
${INSTALLER_TMP_PATH} SHOW_PROGRESS
INACTIVITY_TIMEOUT 60
EXPECTED_MD5 5f897a3328f217bae6c0ed2a934e524c
)
else()
message(STATUS "Downloading 32 bit installer")
file(DOWNLOAD
"https://github.com/ros-naoqi/nao_meshes_installer/raw/master/naomeshes-0.6.7-linux-installer.run"
${INSTALLER_TMP_PATH} SHOW_PROGRESS
file(DOWNLOAD ${INSTALLER_URL} ${INSTALLER_PATH}
SHOW_PROGRESS
INACTIVITY_TIMEOUT 60
EXPECTED_MD5 1984b2790930044b4ee00496315c0021
EXPECTED_MD5 ${INSTALLER_MD5}
)
endif()

# specify the interesting folder in the archive. You might want to change
# that for a new binary where the structure is different
set(TMP_MESH_PATH ${TMP_DIR}/meshes)
set(TMP_TEXTURE_PATH ${TMP_DIR}/texture)

# final path in devel/install space
set(FINAL_MESH_PATH ${CATKIN_GLOBAL_SHARE_DESTINATION}/${PROJECT_NAME}/)

# make the file executable to install
file(COPY ${INSTALLER_TMP_PATH}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION ${TMP_DIR}
)

set(INSTALLER_PATH ${TMP_DIR}/installer.run)

# add a target for devel space
add_custom_target(${PROJECT_NAME}_meshes
COMMAND ${INSTALLER_PATH} --mode text --prefix ${TMP_DIR}
COMMAND mkdir -p ${CATKIN_DEVEL_PREFIX}/${FINAL_MESH_PATH}
COMMAND cp -fr ${TMP_MESH_PATH} ${CATKIN_DEVEL_PREFIX}/${FINAL_MESH_PATH}/
COMMAND cp -fr ${TMP_TEXTURE_PATH} ${CATKIN_DEVEL_PREFIX}/${FINAL_MESH_PATH}/
COMMAND rm -fr ${TMP_DIR}/rollback*
)

# uncompress the meshes during install
install(CODE
"
# uncompress the archive
message(STATUS \"using ${INSTALLER_PATH} to decompress to ${TMP_DIR}\")
execute_process(COMMAND ${INSTALLER_PATH} --mode unattended --prefix ${TMP_DIR}
OUTPUT_VARIABLE OUT
ERROR_VARIABLE ERROR
RESULT_VARIABLE RESULT
)
message(STATUS \"intall out: \${OUT}\")
message(STATUS \"install error: \${ERROR}\")
message(STATUS \"install result: \${RESULT}\")
# Where to install the meshes and textures
# relative to the share folder of the package.
set(INSTALL_DESTINATION_IN_SHARE ${PROJECT_NAME})

execute_process(COMMAND ls
WORKING_DIRECTORY ${TMP_DIR}
OUTPUT_VARIABLE OUT_LS
ERROR_VARIABLE ERROR_LS
RESULT_VARIABLE RESULT_LS
)
message(STATUS \"ls out: \${OUT_LS}\")
message(STATUS \"ls error: \${ERROR_LS}\")
message(STATUS \"ls result: \${RESULT_LS}\")
execute_process(COMMAND file ${TMP_DIR}/installer.run
OUTPUT_VARIABLE OUT_FILE
ERROR_VARIABLE ERROR_FILE_CMD
RESULT_VARIABLE ERROR_FILE_CMD
)
message(STATUS \"file out: \${OUT_FILE}\")
message(STATUS \"file error: \${ERROR_FILE_CMD}\")
message(STATUS \"file result: \${RESULT_FILE}\")
"
# install the meshes in the build directory when building
message(STATUS "Unpacking meshes from the installer: \n${INSTALLER_PATH} --prefix ${TMP_DIR}")
add_custom_target(install_meshes ALL
COMMAND chmod +x ${INSTALLER_PATH}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/install_with_auto_mode.sh ${INSTALLER_PATH} --prefix ${TMP_DIR}
BYPRODUCTS ${TMP_MESH_PATH} ${TMP_TEXTURE_PATH}
TERMINAL
)

# install the archive
install(DIRECTORY ${TMP_MESH_PATH}
DESTINATION ${FINAL_MESH_PATH}/
)
install(DIRECTORY ${TMP_TEXTURE_PATH}
DESTINATION ${FINAL_MESH_PATH}/
install(DIRECTORY ${TMP_MESH_PATH} ${TMP_TEXTURE_PATH}
DESTINATION share/${PROJECT_NAME}
)

ament_package()
16 changes: 0 additions & 16 deletions README

This file was deleted.

23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# nao_meshes2

This package allows you to install the Aldebaran Pepper meshes for ROS2

When building a binary package, please make sure that with the installer the user has to agree to
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License
that is given in the LICENSE file: this is the only requirement from Aldebaran.

Justification: in French law, only clicking/entering text is recognized as a virtual signature;
the LICENSE file is therefore not sufficient. Aldebaran allows you to redistribute those
meshes as long as they are given through an installer that asks the user to click/enter "ok/yes".


Also, the history of that repo will be frequently re-written ! we don't want to keep the old history
of the meshes as this could result in heavy cloning.

## Status

ROS Distro | Binary Status | Source status |
|-------------------|-------------------|-------------------|
Humble | |
Galactic | [![Build Status](https://build.ros2.org/job/Gbin_uF64__nao_meshes__ubuntu_focal_amd64__binary/badge/icon)](https://build.ros2.org/job/Gbin_uF64__nao_meshes__ubuntu_focal_amd64__binary/) | [![Build Status](https://build.ros2.org/job/Gsrc_uF__nao_meshes__ubuntu_focal__source/badge/icon)](https://build.ros2.org/job/Gsrc_uF__nao_meshes__ubuntu_focal__source/)
Foxy | [![Build Status](https://build.ros2.org/job/Fbin_uF64__nao_meshes__ubuntu_focal_amd64__binary/badge/icon)](https://build.ros2.org/job/Fbin_uF64__nao_meshes__ubuntu_focal_amd64__binary/) | [![Build Status](https://build.ros2.org/job/Fsrc_uF__nao_meshes__ubuntu_focal__source/badge/icon)](https://build.ros2.org/job/Fsrc_uF__nao_meshes__ubuntu_focal__source/)
27 changes: 27 additions & 0 deletions install_with_auto_mode.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash
set -e

# Installer should show up to the user if it is not an automated job.
if [ -n "$DEBIAN_FRONTEND" ]; then
if [ "$DEBIAN_FRONTEND" = "noninteractive" ]; then
INSTALL_MODE_FLAG=("--mode" "unattended")
elif [ "$DEBIAN_FRONTEND" = "readline" ]; then
INSTALL_MODE_FLAG=("--mode" "text")
fi
fi
# For GitHub Actions this works better
if [ -n "$CI" ] && [ "$CI" = 1 ]; then
INSTALL_MODE_FLAG=("--mode" "unattended")
fi
# For ROS 2 CI, we can check if we're in a Docker container.
if [ -f /.dockerenv ]; then
INSTALL_MODE_FLAG=("--mode" "unattended")
fi

# Unless they specifically agree to the license.
if [ -n "$I_AGREE_TO_NAO_MESHES_LICENSE" ] && [ "$I_AGREE_TO_NAO_MESHES_LICENSE" = 1 ]; then
INSTALL_MODE_FLAG=("--mode" "unattended")
fi

# Call the installer, pass our flag and all the remaining arguments
$1 "${INSTALL_MODE_FLAG[@]}" "${@:2}"
18 changes: 11 additions & 7 deletions package.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
<package>
<?xml version="1.0"?>
<package format="3">
<name>nao_meshes</name>
<version>0.1.13</version>
<description>meshes for the Aldebaran Robotics NAO</description>
<author email="[email protected]">Vincent Rabaud</author>
<author email="[email protected]">Mikael Arguedas</author>
<version>2.1.0</version>
<description>ROS2 Meshes for the NAO robot</description>
<author email="[email protected]">Maxime Busy</author>

<maintainer email="[email protected]">Victor Paleologue</maintainer>
<maintainer email="[email protected]">Maxime Busy</maintainer>
<maintainer email="[email protected]">Surya Ambrose</maintainer>
<maintainer email="[email protected]">Natalia Lyubova</maintainer>

<license>Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License</license>

<url>http://github.com/ros-naoqi/nao_meshes/</url>
<url>http://github.com/ros-naoqi/nao_meshes2/</url>

<buildtool_depend>ament_cmake</buildtool_depend>
<build_depend>java</build_depend>

<buildtool_depend>catkin</buildtool_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>

0 comments on commit d572b9e

Please sign in to comment.