diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..0d7d690c77f456e8fc322ca73396810373fa4a63
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/output
+/ros-check.list
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..a2bafd5c5ace9f0b0eb04f5bb2a1ecc20744a89d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2023, NiuTao
+All rights reserved.
+
+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 the copyright holder 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 HOLDER 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.
diff --git a/README.en.md b/README.en.md
index bfeccdff5a43c1321c20a9c782e78e17f995baf6..509e9f13e68094c653566949b07c111186bb6cec 100644
--- a/README.en.md
+++ b/README.en.md
@@ -1,7 +1,7 @@
-# ros-porting-tools
+# ros-tools
#### Description
-The tools for automatic download upstreatm software package and generate rpm spec to porting the 1000+ ROS software packages.
+ros auto tools
#### Software Architecture
Software architecture description
diff --git a/README.md b/README.md
index e47e7508a005c6065dd30ae44c65f31bb4d8fa91..ea0229052f9778d6c3ef9d07e849d0dab0092180 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,26 @@
-# ros-porting-tools
+# ros-tools
#### 介绍
-The tools for automatic download upstreatm software package and generate rpm spec to porting the 1000+ ROS software packages.
-
-#### 软件架构
-软件架构说明
-
-
-#### 安装教程
-
-1. xxxx
-2. xxxx
-3. xxxx
+本仓库用于自动引入ros到openEuler上。
#### 使用说明
-
-1. xxxx
-2. xxxx
-3. xxxx
+1. 执行get-repo-list.sh
+2. 执行vcs import src < ros.repos #下载ros源码到src目录下
+3. 执行get-pkg-src.sh ros源码下载目录
+3. 执行get-pkg-deps.sh ros源码下载目录
+4. 执行gen-pkg-spec.sh ros源码下载目录 #在output/ros-repo目录下生成ros仓库和对应的tar包以及spec
+5. 上传tar包和spec到对应的ros仓库即可。
+
+#### 脚本用途介绍
+|脚本名称|输入|输出|作用|
+|---|---|---|---|
+|get-ros-projects.sh|http://repo.ros2.org/status_page
/ros_humble_default.html|humble/ros-projects.list|支持自动分析http://repo.ros2.org/status_page/ros_humble_default.html页面获取软件包名、仓库地址、软件包状态、版本号|
+|get-repo-list.sh|humble/ros-projects.list
humble/ros-version-fix|output/ros-pkg.list
output/ros-projects-name.list
output/ros.repos
output/ros.url|output/ros-pkg.list #软件包名、对应的仓库地址、版本号
output/ros-projects-name.list #软件仓库的名称
output/ros.repos #用于下载上游软件包
output/ros.url #所有上游仓库地址|
+|get-src-from-github.sh
get-src-from-ubuntu.sh|output/ros.repos|output/src|src目录下会自动下载所有上游仓库|
+|get-pkg-src.sh|output/ros-pkg.list|output/ros-pkg-src.list|生成 软件包名、对应上游仓库内的路径、版本号|
+|get-pkg-deps.sh|output/ros-pkg-src.list
output/ros-pkg.list|output/pkg
BuildRequires
ExtDeps
PackageXml
PackageXml-description
Requires
test-BuildRequires |生成软件包的依赖
BuildRequires #构建依赖
ExtDeps #外部依赖
PackageXml #提取package.xml中的关键元素
PackageXml-description #软件包描述信息
Requires #运行依赖
test-BuildRequires #自验证依赖|
+|gen-pkg-spec.sh|output/ros-pkg-src.list
output/ros-pkg.list|output/repo|自动生成src-openeuler组织下的仓库、软件tar.gz包、spec、_multibuild文件|
+|get-deps-src.sh|output/deps|output/ros-deps.list
output/ros-deps-src.list|在Ubuntu系统上查找对应的软件包的源码包
output/ros-deps.list #外部依赖列表
output/ros-deps-src.list #外部依赖、源码包|
#### 参与贡献
@@ -25,13 +28,3 @@ The tools for automatic download upstreatm software package and generate rpm spe
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
-
-
-#### 特技
-
-1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
-2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
-3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
-4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
-5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
-6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/base.sh b/base.sh
new file mode 100755
index 0000000000000000000000000000000000000000..58cccd204c497a57e958ea93e35f9aa8756bb7f1
--- /dev/null
+++ b/base.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+ROOT=`pwd`
+ROS_DISTRO=`grep ROS_DISTRO config | cut -d'=' -f2`
+SRC_TAR_FROM=`grep SRC_TAR_FROM config | cut -d'=' -f2`
+DEBUG=`grep DEBUG config | cut -d'=' -f2`
+SRC_TAR_BASE_URL=`grep SRC_TAR_BASE_URL config | cut -d'=' -f2`
+GITEE_ORG=`grep GITEE_ORG config | cut -d'=' -f2`
+GITEE_DOMAIN=`grep GITEE_DOMAIN config | cut -d'=' -f2`
+OBS_DOMAIN=`grep OBS_DOMAIN config | cut -d'=' -f2`
+OBS_PROJECT=`grep OBS_PROJECT config | cut -d'=' -f2`
+
+OUTPUT=${ROOT}/output
+ROS_OUTPUT_TMP=${OUTPUT}/.tmp
+ROS_SRC_BASE=${OUTPUT}/src
+ROS_DEPS_BASE=${OUTPUT}/deps
+ROS_REPO_BASE=${OUTPUT}/repo
+ROS_OBS_BASE=${OUTPUT}/obs
+ROS_GITEE_BASE=${OUTPUT}/gitee
+LOG=${OUTPUT}/ros-tools.log
+
+ROS_PROJECTS_NAME=${OUTPUT}/ros-projects-name.list
+ROS_PKG_LIST=${OUTPUT}/ros-pkg.list
+
+mkdir -p ${OUTPUT}
+mkdir -p ${ROS_OUTPUT_TMP}
+
+error_log()
+{
+ echo -e "\n`date` [Error] $*"
+ echo -e "\n`date` [Error] $*" >>${LOG}
+}
+
+info_log()
+{
+ echo -e "\n`date` [Info ] $*"
+ echo -e "\n`date` [Info ] $*" >> ${LOG}
+}
+
+debug_log()
+{
+ if [ "$DEBUG" != "yes" ]
+ then
+ return
+ fi
+ echo -e "\n`date` [Debug] $*"
+ echo -e "\n`date` [Debug] $*" >> ${LOG}
+}
+
+if [ "${ROS_DISTRO}" = "" ]
+then
+ error_log "ROS_DISTRO not defined"
+ exit 1
+fi
diff --git a/check-build-status-in-obs.sh b/check-build-status-in-obs.sh
new file mode 100755
index 0000000000000000000000000000000000000000..4d8d1779a57f1b676bf9dc180ff5b8bc73a321d9
--- /dev/null
+++ b/check-build-status-in-obs.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+. base.sh
+
+USER_INFO="$1"
+ROS_CHECK_LIST=${ROOT}/ros-check.list
+ROS_BUILD_STATUS=${OUTPUT}/ros-build-status.list
+
+prepare()
+{
+ if [ ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_LIST}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_CHECK_LIST} ]
+ then
+ error_log "Please give the ${ROS_CHECK_LIST}"
+ exit 1
+ fi
+
+ if [ "$USER_INFO" == "" ]
+ then
+ error_log "please give user info, like:"
+ error_log "$0 user:pass"
+ exit 1
+ fi
+
+ >${ROS_BUILD_STATUS}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+ cd ${ROS_OUTPUT_TMP}
+ wget http://119.3.219.20:82/openEuler:/ROS:/humble/standard_x86_64/src
+ grep "\.src.rpm" src | awk -F"href=\"" '{print $2}' | cut -d'"' -f1 | sed -e "s/\-[[:digit:]]\+\..*//g" >.build_succeeded
+
+ while read project
+ do
+ info_log "start check project $project"
+ p=`grep -P "^$project\t" ${ROS_PKG_LIST}`
+ if [ $? -ne 0 ]
+ then
+ error_log "project $project not found."
+ echo -e "$project\tnot_found" >>${ROS_BUILD_STATUS}
+ continue
+ fi
+
+ pkg=`echo "$p" | awk '{print $2}'`
+ rm -f ${OUTPUT}/_status
+ wget --no-check-certificate -q -c -P ${OUTPUT} https://${USER_INFO}@${OBS_DOMAIN}/build/$OBS_PROJECT/standard_x86_64/x86_64/$pkg:$project/_status
+ if [ $? -ne 0 ]
+ then
+ error_log "get status of package $project fail"
+ echo -e "$project\tunkown" >>${ROS_BUILD_STATUS}
+ continue
+ fi
+
+ status=`grep "code" ${OUTPUT}/_status | cut -d'"' -f4`
+ echo -e "$project\t$status" >>${ROS_BUILD_STATUS}
+ done < ${ROS_CHECK_LIST}
+
+ info_log "get status of projects ok"
+}
+
+main $*
diff --git a/clone-projects-from-gitee.sh b/clone-projects-from-gitee.sh
new file mode 100755
index 0000000000000000000000000000000000000000..dded75d155421b00ad4c7e612c1ab8c303322337
--- /dev/null
+++ b/clone-projects-from-gitee.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+. base.sh
+
+GITEE_URL=git@gitee.com
+GITEE_ORG=will_niutao
+GITEE_BASE=${OUTPUT}/gitee
+
+prepare()
+{
+ if [ ! -f ${ROS_PROJECTS_NAME} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ mkdir -p ${GITEE_BASE}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to clone projects from $GITEE_URL"
+
+ while read project
+ do
+ info_log "start clone project ${project}"
+
+ if [ -d ${GITEE_BASE}/${project}/.git ]
+ then
+ info_log "project ${project} has been clone, ignore"
+ continue
+ fi
+
+ cd ${GITEE_BASE}
+ #git clone ${GITEE_DOMAIN}:${GITEE_ORG}/${project}.git
+ git clone https://${GITEE_DOMAIN}/${GITEE_ORG}/${project}.git
+ if [ $? -ne 0 ]
+ then
+ error_log "fail to clone project ${project}"
+ continue
+ fi
+ cd ${project}
+ git branch -a | grep ${ROS_DISTRO}
+ if [ $? -eq 0 ]
+ then
+ git checkout ${ROS_DISTRO}
+ else
+ git checkout -b ${ROS_DISTRO}
+ fi
+
+ done < ${ROS_PROJECTS_NAME}
+
+ info_log "clone project ok"
+}
+
+main $*
diff --git a/config b/config
new file mode 100644
index 0000000000000000000000000000000000000000..becd8b91b0c3c51bf5c48bb1af0e62f7463d704d
--- /dev/null
+++ b/config
@@ -0,0 +1,8 @@
+ROS_DISTRO=humble
+SRC_TAR_FROM=ubuntu
+DEBUG=no
+SRC_TAR_BASE_URL=https://packages.ros.org/ros2/ubuntu/pool/main/r
+GITEE_ORG=will_niutao
+GITEE_DOMAIN=gitee.com
+OBS_DOMAIN=build.openeuler.openatom.cn
+OBS_PROJECT=openEuler:ROS:humble
diff --git a/create-graph-deps-for-check-list.sh b/create-graph-deps-for-check-list.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fedc03523798166c0f7202a75d96d0d67a37df79
--- /dev/null
+++ b/create-graph-deps-for-check-list.sh
@@ -0,0 +1,127 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_CHECK_LIST=${ROOT}/ros-check.list
+ROS_GRAPH_BASE=${OUTPUT}/graph
+ROS_BUILD_STATUS=${OUTPUT}/ros-build-status.list
+
+prepare()
+{
+ if [ ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_LIST}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_BUILD_STATUS} ]
+ then
+ error_log "Please give the ${ROS_CHECK_LIST}"
+ exit 1
+ fi
+
+ if [ ! -d ${ROS_REPO_BASE} ]
+ then
+ error_log "Ros repo bae not found"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_GRAPH_BASE}
+ rm -rf ${ROS_GRAPH_BASE}/*
+
+}
+
+get_deps()
+{
+ is_more=$1
+ out_file=$2
+
+ if [ "$is_more" == "1" ]
+ then
+ grep -F " -" ros.dot | awk -F"->" '{print $2}' | sort >.ros.deps
+ else
+ grep -F " -" ros.dot | awk -F"->" '{print $1}' | sort >.ros.deps
+ fi
+
+ cat .ros.deps | uniq >ros.deps
+ >.ros.imp
+ for i in `cat ros.deps`
+ do
+ if [ "$is_more" == "1" ]
+ then
+ n=`grep -P "$i\$" .ros.deps | wc -l`
+ else
+ n=`grep -P "^$i " .ros.deps | wc -l`
+ fi
+ pkg=`echo $i | sed -e "s#_#-#g" | sed -e "s#ros-${ROS_DISTRO}-##g"`
+ s=`grep -P "^$pkg\t" ${ROS_BUILD_STATUS} | awk '{print $2}'`
+ [ "$s" == "succeeded" ] && continue
+
+ printf "%03d %s\n" $n $i >>.ros.imp
+ done
+ cat .ros.imp | sort >$out_file
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ cd ${ROS_GRAPH_BASE}
+
+ find ${ROS_REPO_BASE} -name "*.spec" >.all_spec
+
+ >.succeeded.list
+
+ while read project status
+ do
+ if [ "$status" == "succeeded" ]
+ then
+ echo "$project" >>.succeeded.list
+ continue
+ fi
+
+ s=`grep "${project}.spec" ${OUTPUT}/.all_spec`
+
+ [ "$s" == "" ] && continue
+ cp $s ${ROS_GRAPH_BASE}
+ done < ${ROS_BUILD_STATUS}
+
+ ls *.spec | xargs sed -i '/ros-%{ros_distro}-ros-workspace/d'
+ ls *.spec | xargs sed -i "s#%{ros_distro}#${ROS_DISTRO}#g"
+ ls *.spec | xargs sed -i "s#^BuildRequires:#Requires:#g"
+
+ for i in `ls *.spec`
+ do
+ n=`grep " RosPkgName" $i | awk '{print $3}'`
+ sed -i "s#%{RosPkgName}#$n#g" $i
+ done
+
+ if [ -f ${ROS_OUTPUT_TMP}/.build_succeeded ]
+ then
+ for i in `cat ${ROS_OUTPUT_TMP}/.build_succeeded`
+ do
+ sed -i "/Requires: $i/d" *.spec
+ done
+ fi
+
+ rpm_spec_dependency_analyzer --output ros.dot *.spec
+
+ while read project
+ do
+ sed -i "/$project/d" ros.dot
+ done < .succeeded.list
+
+ get_deps 1 ros.deps.more
+ get_deps 0 ros.deps.less
+
+ cp ros.dot .ros.dot
+ sed -i "s#-#_#g" .ros.dot
+ sed -i 's#_>#->#g' .ros.dot
+ dot -Tsvg .ros.dot -o ros.svg
+
+ info_log "get status of projects ok"
+}
+
+main $*
diff --git a/create-report.sh b/create-report.sh
new file mode 100755
index 0000000000000000000000000000000000000000..6755a2e1c6dd817acea8111a78d3e8d93776d2f6
--- /dev/null
+++ b/create-report.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_REPORT=${OUTPUT}/ros-report.list
+ROS_CHECK_LIST=${ROOT}/ros-check.list
+ROS_BUILD_STATUS=${OUTPUT}/ros-build-status.list
+
+prepare()
+{
+ if [ ! -f ${ROS_PROJECTS_NAME} -o ! -f ${ROS_PKG_LIST} -o ! -f ${ROS_CHECK_LIST} -o ! -f ${ROS_BUILD_STATUS} ]
+ then
+ error_log "Can not find ${ROS_PROJECTS_NAME} and ${ROS_PKG_LIST}"
+ exit 1
+ fi
+
+ >${ROS_REPORT}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ echo -e "Repository\tPackage\tIs in work list\tBuild status" >> ${ROS_REPORT}
+
+ while read repo
+ do
+
+ #if [ "$repo" != "control_box_rst" ]
+ #then
+ # continue
+ #fi
+
+ grep -P "\t$repo\t" ${ROS_PKG_LIST} >${OUTPUT}/.repo_pkgs
+
+ echo "$repo" >> ${ROS_REPORT}
+
+ while read pkg _repo version
+ do
+ if [ "$pkg" = "" -o "$_repo" = "" ]
+ then
+ error_log "Wrong package $pkg"
+ exit 1
+ fi
+
+ is_in_ros_check=""
+ build_status=""
+
+ grep -qP "^$pkg\$" ${ROS_CHECK_LIST}
+
+ [ $? -eq 0 ] && is_in_ros_check=yes
+ [ "$is_in_ros_check" == "yes" ] && build_status=`grep -P "^$pkg\t" ${ROS_BUILD_STATUS} | awk '{print $2}'`
+
+ echo -e "\t$pkg\t${is_in_ros_check}\t${build_status}" >> ${ROS_REPORT}
+ done < ${OUTPUT}/.repo_pkgs
+ done <${ROS_PROJECTS_NAME}
+
+ echo "-----------package not in ros-----------" >> ${ROS_REPORT}
+
+ while read pkg
+ do
+ grep -qP "^$pkg\t" ${ROS_PKG_LIST}
+ [ $? -eq 0 ] && continue
+
+ echo "$pkg" >> ${ROS_REPORT}
+ build_status=`grep -P "^$pkg\t" ${ROS_BUILD_STATUS} | awk '{print $2}'`
+ echo -e "\t$pkg\tyes\t${build_status}" >> ${ROS_REPORT}
+ done < ${ROS_CHECK_LIST}
+
+ info_log "Gen ${ROS_REPORT} done"
+}
+
+main $*
diff --git a/create-ros-projects-in-gitee.sh b/create-ros-projects-in-gitee.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d5a796aa5b599c35c2a5cc0c9c7cfeca06ba518e
--- /dev/null
+++ b/create-ros-projects-in-gitee.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+. base.sh
+
+GITEE_ACCESS_TOKEN=$1
+GITEE_HEADER_PREFIX="'Content-Type: application/json;charset=UTF-8'"
+HAS_CREATED_LIST=${OUTPUT}/has_created.list
+
+prepare()
+{
+ if [ "${GITEE_ACCESS_TOKEN}" = "" ]
+ then
+ error_log "Please give the access token of gitee.com"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_PROJECTS_NAME} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -f ${HAS_CREATED_LIST} ]
+ then
+ touch ${HAS_CREATED_LIST}
+ fi
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read project
+ do
+ grep -q $project $HAS_CREATED_LIST
+ if [ $? -eq 0 ]
+ then
+ info_log "project $project has created, ignore"
+ continue
+ fi
+
+ info_log "start create project $project"
+ echo curl -s -X POST --header ${GITEE_HEADER_PREFIX} \'https://gitee.com/api/v5/user/repos\' -d \
+ \''{"access_token":"'${GITEE_ACCESS_TOKEN}'","name":"'${project}'","description":"'${project}'","has_issues":"true","has_wiki":"true","can_comment":"true","auto_init":"true","private":"true"}'\' >${OUTPUT}/.post
+ bash ${OUTPUT}/.post 1>/dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ error_log "fail to create project $project"
+ exit 1
+ fi
+
+ echo curl -s -X PATCH --header ${GITEE_HEADER_PREFIX} \'https://gitee.com/api/v5/repos/${GITEE_ORG}/${project}\' -d \
+ \''{"access_token":"'${GITEE_ACCESS_TOKEN}'","name":"'${project}'","has_issues":"true","has_wiki":"true","can_comment":"true","private":"false"}'\' >${OUTPUT}/.post
+ bash ${OUTPUT}/.post 1>/dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ error_log "fail to setting project $project"
+ exit 1
+ fi
+ echo $project >>${HAS_CREATED_LIST}
+ done < ${ROS_PROJECTS_NAME}
+
+ info_log "create project ok"
+}
+
+main $*
diff --git a/create-ros-projects-in-obs.sh b/create-ros-projects-in-obs.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5942c1daacac89f4f95f93777bd365438bd4361f
--- /dev/null
+++ b/create-ros-projects-in-obs.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+. base.sh
+
+SERVICE_FILE=_service
+
+prepare()
+{
+ if [ ! -f ${ROS_PROJECTS_NAME} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_OBS_BASE}
+ rm -rf ${ROS_OBS_BASE}/*
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read project
+ do
+ info_log "start create project $project"
+
+ mkdir -p ${ROS_OBS_BASE}/${project}
+ cd ${ROS_OBS_BASE}/${project}
+
+ echo "" > ${SERVICE_FILE}
+ echo " " >> ${SERVICE_FILE}
+ echo " git" >> ${SERVICE_FILE}
+ echo " https://${GITEE_DOMAIN}/${GITEE_ORG}/${project}.git" >> ${SERVICE_FILE}
+ echo " *" >> ${SERVICE_FILE}
+ echo " *" >> ${SERVICE_FILE}
+ echo " ${ROS_DISTRO}" >> ${SERVICE_FILE}
+ echo " " >> ${SERVICE_FILE}
+ echo "" >> ${SERVICE_FILE}
+ done < ${ROS_PROJECTS_NAME}
+
+ info_log "create project ok"
+}
+
+main $*
diff --git a/create-ros-yaml-for-gitee.sh b/create-ros-yaml-for-gitee.sh
new file mode 100755
index 0000000000000000000000000000000000000000..86f23345be3699f7a4b0356832d6bd93d40f71a7
--- /dev/null
+++ b/create-ros-yaml-for-gitee.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_SIG_BASE=${OUTPUT}/sig/sig-ROS/src-openeuler
+
+prepare()
+{
+ if [ ! -f ${ROS_PROJECTS_NAME} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_SIG_BASE}
+ rm -rf ${ROS_SIG_BASE}/*
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ cd ${ROS_SIG_BASE}
+
+ while read project
+ do
+ class=${project:0:1}
+ mkdir -p $class
+
+ echo "name: $project" >${ROS_SIG_BASE}/$class/$project.yaml
+ echo "description:" >>${ROS_SIG_BASE}/$class/$project.yaml
+ for i in `cd ${ROS_REPO_BASE}/$project && ls *.spec`
+ do
+ sum=`grep "Summary: " ${ROS_REPO_BASE}/$project/$i | awk -F"Summary: " '{print $2}'`
+ summary=`echo $(echo $sum)`
+ echo " $i : $summary" >>${ROS_SIG_BASE}/$class/$project.yaml
+ done
+ echo "upstream: ${SRC_TAR_BASE_URL}" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo "branches:" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo "- name: master" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo " type: protected" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo "- name: ${ROS_DISTRO}" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo " type: protected" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo " create_from: master" >>${ROS_SIG_BASE}/$class/$project.yaml
+ echo "type: public" >>${ROS_SIG_BASE}/$class/$project.yaml
+
+ done < ${ROS_PROJECTS_NAME}
+
+ info_log "create project ok"
+}
+
+main $*
diff --git a/doc/.keep b/doc/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/doc/ros_630.txt b/doc/ros_630.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3d6520cfef431fa08dfd3d29aad8a9c4b0c1290e
--- /dev/null
+++ b/doc/ros_630.txt
@@ -0,0 +1,281 @@
+actionlib-msgs
+action-msgs
+ament-cmake
+ament-cmake-auto
+ament-cmake-copyright
+ament-cmake-core
+ament-cmake-cppcheck
+ament-cmake-cpplint
+ament-cmake-export-definitions
+ament-cmake-export-dependencies
+ament-cmake-export-include-directories
+ament-cmake-export-interfaces
+ament-cmake-export-libraries
+ament-cmake-export-link-flags
+ament-cmake-export-targets
+ament-cmake-flake8
+ament-cmake-gen-version-h
+ament-cmake-gmock
+ament-cmake-gtest
+ament-cmake-include-directories
+ament-cmake-libraries
+ament-cmake-lint-cmake
+ament-cmake-pep257
+ament-cmake-pytest
+ament-cmake-python
+ament-cmake-ros
+ament-cmake-target-dependencies
+ament-cmake-test
+ament-cmake-uncrustify
+ament-cmake-version
+ament-cmake-xmllint
+ament-copyright
+ament-cppcheck
+ament-cpplint
+ament-flake8
+ament-index-cpp
+ament-index-python
+ament-lint
+ament-lint-auto
+ament-lint-cmake
+ament-lint-common
+ament-package
+ament-pep257
+ament-uncrustify
+ament-xmllint
+angles
+behaviortree-cpp-v3
+bond
+builtin-interfaces
+bullet
+camera-calibration-parsers
+camera-info-manager
+cartographer
+cartographer-ros
+cartographer-ros-msgs
+class-loader
+common-interfaces
+composition-interfaces
+connext-cmake-module
+console-bridge
+console-bridge-vendor
+costmap-queue
+cppzmq
+cv-bridge
+cyclonedds
+demo-nodes-cpp
+diagnostic-aggregator
+diagnostic-msgs
+diagnostic-updater
+domain-coordinator
+dwb-core
+dwb-critics
+dwb-msgs
+dwb-plugins
+eigen3-cmake-module
+example-interfaces
+fastcdr
+fastrtps
+fastrtps-cmake-module
+foonathan-memory
+foonathan-memory-vendor
+geometry2
+geometry-msgs
+gmock-vendor
+googletest
+gtest-vendor
+iceoryx-binding-c
+iceoryx-hoofs
+iceoryx-posh
+image-geometry
+image-transport
+interactive-markers
+kdl-parser
+keyboard-handler
+laser-geometry
+launch
+launch-ros
+launch-testing
+launch-testing-ament-cmake
+launch-testing-ros
+launch-xml
+launch-yaml
+libexif
+libflann
+libstatistics-collector
+libuvc
+libyaml-vendor
+lifecycle-msgs
+map-msgs
+message-filters
+nav2-amcl
+nav2-behavior-tree
+nav2-bringup
+nav2-bt-navigator
+nav2-common
+nav2-controller
+nav2-core
+nav2-costmap-2d
+nav-2d-msgs
+nav-2d-utils
+nav2-dwb-controller
+nav2-lifecycle-manager
+nav2-map-server
+nav2-msgs
+nav2-navfn-planner
+nav2-planner
+nav2-recoveries
+nav2-regulated-pure-pursuit-controller
+nav2-util
+nav2-voxel-grid
+nav2-waypoint-follower
+navigation2
+nav-msgs
+ompl
+originbot
+orocos-kdl
+orocos-kdl-vendor
+osrf-pycommon
+pcl
+pcl-conversions
+pcl-msgs
+pcl-ros
+perception-pcl
+pluginlib
+pybind11-vendor
+python3-catkin-pkg
+python3-colcon-core
+python3-empy
+python3-rosdistro
+python-cmake-module
+qhull
+qpoases-vendor
+rcl
+rcl-action
+rclcpp
+rclcpp-action
+rclcpp-components
+rclcpp-lifecycle
+rcl-interfaces
+rcl-lifecycle
+rcl-logging-interface
+rcl-logging-spdlog
+rclpy
+rcl-yaml-param-parser
+rcpputils
+rcutils
+rmw
+rmw-connext-cpp
+rmw-connextdds
+rmw-connextdds-common
+rmw-connext-shared-cpp
+rmw-cyclonedds-cpp
+rmw-dds-common
+rmw-fastrtps-cpp
+rmw-fastrtps-dynamic-cpp
+rmw-fastrtps-shared-cpp
+rmw-implementation
+rmw-implementation-cmake
+robot-state-publisher
+ros2action
+ros2bag
+ros2cli
+ros2cli-common-extensions
+ros2component
+ros2doctor
+ros2interface
+ros2launch
+ros2lifecycle
+ros2multicast
+ros2node
+ros2param
+ros2pkg
+ros2run
+ros2service
+ros2topic
+rosbag2
+rosbag2-compression
+rosbag2-compression-zstd
+rosbag2-cpp
+rosbag2-interfaces
+rosbag2-py
+rosbag2-storage
+rosbag2-storage-default-plugins
+rosbag2-transport
+ros-base
+ros-core
+ros-environment
+rosgraph-msgs
+rosidl-adapter
+rosidl-cli
+rosidl-cmake
+rosidl-default-generators
+rosidl-default-runtime
+rosidl-generator-c
+rosidl-generator-cpp
+rosidl-generator-py
+rosidl-parser
+rosidl-runtime-c
+rosidl-runtime-cpp
+rosidl-runtime-py
+rosidl-typesupport-c
+rosidl-typesupport-connext-c
+rosidl-typesupport-connext-cpp
+rosidl-typesupport-cpp
+rosidl-typesupport-fastrtps-c
+rosidl-typesupport-fastrtps-cpp
+rosidl-typesupport-interface
+rosidl-typesupport-introspection-c
+rosidl-typesupport-introspection-cpp
+ros-workspace
+rpyutils
+rti-connext-dds-cmake-module
+sdl2-vendor
+self-test
+sensor-msgs
+shape-msgs
+shared-queues-vendor
+slam-toolbox
+smac-planner
+spdlog
+spdlog-vendor
+sqlite3-vendor
+sros2
+sros2-cmake
+statistics-msgs
+std-msgs
+std-srvs
+stereo-msgs
+suitesparse
+teleop-twist-joy
+teleop-twist-keyboard
+test-interface-files
+test-msgs
+tf2
+tf2-bullet
+tf2-eigen
+tf2-eigen-kdl
+tf2-geometry-msgs
+tf2-kdl
+tf2-msgs
+tf2-py
+tf2-ros
+tf2-ros-py
+tf2-sensor-msgs
+tf2-tools
+tinyxml2-vendor
+tinyxml-vendor
+tracetools
+trajectory-msgs
+uncrustify-vendor
+unique-identifier-msgs
+urdf
+urdfdom
+urdfdom-headers
+urdf-parser-plugin
+v4l2-camera
+vision-opencv
+visualization-msgs
+yaml-cpp-vendor
+ydlidar
+zstd-vendor
\ No newline at end of file
diff --git a/doc/test b/doc/test
new file mode 100644
index 0000000000000000000000000000000000000000..a93f159cce32f9049816b7ebc3b56ee263af4839
--- /dev/null
+++ b/doc/test
@@ -0,0 +1 @@
+rpm-spec-dependency-analyzer
\ No newline at end of file
diff --git a/gen-pkg-spec.sh b/gen-pkg-spec.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3c842be0819c2862192346529f626c62db973608
--- /dev/null
+++ b/gen-pkg-spec.sh
@@ -0,0 +1,338 @@
+#!/bin/bash
+
+. base.sh
+
+GEN_ONE=$1
+
+ROS_PKG_SRC=${OUTPUT}/ros-pkg-src.list
+ROS_PACKAGE_FIX=${ROOT}/package_fix
+ROS_PKG_REMAP=${ROOT}/spec_fix/pkg.remap
+
+prepare()
+{
+ if [ "${ROS_SRC_BASE}" = "" ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -d ${ROS_SRC_BASE} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_PKG_SRC} -o ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_SRC}, you can use get-repo-src.sh to create it"
+ exit 1
+ fi
+
+ if [ "$GEN_ONE" == "" ]
+ then
+ rm -rf ${ROS_REPO_BASE}
+ fi
+ mkdir -p ${ROS_REPO_BASE}
+}
+
+spec_fix()
+{
+ pkg=$1
+ deps_suffix=$2
+ require_type=$3
+ key_word=$4
+ require_file=$5
+
+ spec_fix_file=${ROOT}/spec_fix/$pkg.${deps_suffix}
+
+ [ ! -f ${spec_fix_file} ] && return
+
+ if [ -f ${require_file} ]
+ then
+ for dep in `grep "^\-" ${spec_fix_file} | sed -e "s#^\-##g"`
+ do
+ sed -i "/^$require_type: *$dep/d" $require_file
+ done
+ fi
+
+ grep -q "^\+" $spec_fix_file
+ [ $? -ne 0 ] && return
+
+ grep "^\+" $spec_fix_file | sed -e "s#^\+#$require_type: #g" >> ${require_file}
+}
+
+rename_requires()
+{
+ require_file=$1
+
+ while read deb_pkg rpm_pkg
+ do
+ sed -i "s#Requires: ${deb_pkg}\$#Requires: ${rpm_pkg}#g" $require_file
+ done <${ROS_PKG_REMAP}
+}
+
+replace_key_word()
+{
+ key_word=$1
+ input_file=$2
+ replace_file=$3
+
+ if [ ! -f ${input_file} ]
+ then
+ sed -i "/${key_word}/d" $replace_file
+ return
+ fi
+
+ desc_wc=`cat ${input_file} | wc -l`
+ if [ "$desc_wc" = "1" ]
+ then
+ desc=`cat ${input_file}`
+ sed -i "s#${key_word}#$desc#g" $replace_file
+ else
+ desc=`cat ${input_file} | sed ":a;N;s/\n/ROS_DESC_CRLF/g;ta"`
+ sed -i "s^${key_word}^$desc^g" $replace_file
+ sed -i ":a;N;s/ROS_DESC_CRLF/\n/g;ta" $replace_file
+ fi
+}
+
+gen_requires()
+{
+ pkg=$1
+ deps_suffix=$2
+ require_type=$3
+ key_word=$4
+ spec=$5
+
+ debug_log "gen ${deps_suffix}"
+
+ package_xml_deps=${ROS_DEPS_BASE}/$pkg-${deps_suffix}
+ require_file=${OUTPUT}/.tempRequires
+
+ rm -f ${require_file}
+
+ [ -f ${package_xml_deps} ] && cp ${package_xml_deps} ${require_file}
+ spec_fix $pkg $deps_suffix $require_type $key_word $require_file
+
+ if [ ! -f ${require_file} ]
+ then
+ sed -i "/${key_word}/d" $spec
+ return
+ fi
+
+ rename_requires $require_file
+
+ replace_key_word ${key_word} ${require_file} $spec
+}
+
+modify_spec()
+{
+ pkg=$1
+ spec=$2
+ pkg_dir_name=$3
+ base_version=$4
+ release_version=$5
+
+ info_log "gen spec for $pkg"
+
+ debug_log "gen version"
+
+ csrc=`find $pkg_dir_name -name "*.c" | grep -v /test/ | wc -l`
+ cppsrc=`find $pkg_dir_name -name "*.cpp" | grep -v /test/ | wc -l`
+ no_debug=`grep -P "^${pkg}\$" ${ROOT}/spec_fix/no-debuginfo`
+
+ if [ "$csrc" == "0" -a "$cppsrc" == "0" ] || [ "$no_debug" != "" ]
+ then
+ sed -i "s#ROS_PACKAGE_NO_DEBUGINFO#%global debug_package %{nil}#g" $spec
+ else
+ sed -i '/ROS_PACKAGE_NO_DEBUGINFO/d' $spec
+ fi
+
+
+ sed -i "s#ROS_PACKAGE_NAME#$pkg#g" $spec
+ sed -i "s#ROS_PACKAGE_VERSION#$base_version#g" $spec
+ sed -i "s#ROS_PACKAGE_RELEASE#$release_version#g" $spec
+
+ debug_log "gen desc"
+ desc_wc=`cat ${ROS_DEPS_BASE}/$pkg-PackageXml-description | wc -l`
+ if [ "$desc_wc" = "1" ]
+ then
+ desc=`cat ${ROS_DEPS_BASE}/$pkg-PackageXml-description`
+ sed -i "s#ROS_PACKAGE_SUMMARY#$desc#g" $spec
+ sed -i "s#ROS_PACKAGE_DESCRIPTION#$desc#g" $spec
+ else
+ desc=`cat ${ROS_DEPS_BASE}/$pkg-PackageXml-description | sed ":a;N;s/\n/ROS_DESC_CRLF/g;ta"`
+ sed -i "s#ROS_PACKAGE_SUMMARY#ROS $pkg package#g" $spec
+ sed -i "s^ROS_PACKAGE_DESCRIPTION^$desc^g" $spec
+ sed -i ":a;N;s/ROS_DESC_CRLF/\n/g;ta" $spec
+ fi
+
+ debug_log "gen license"
+ license_wc=`grep license: ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"license:" '{print $2}' | wc -l`
+ if [ "$license_wc" = "1" ]
+ then
+ license=`grep license: ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"license:" '{print $2}'`
+ sed -i "s#ROS_PACKAGE_LICENSE#$license#g" $spec
+ else
+ license=`grep license: ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"license:" '{print $2}' | sed ":a;N;s/\n/ and /g;ta"`
+ sed -i "s#ROS_PACKAGE_LICENSE#$license#g" $spec
+ fi
+
+ debug_log "gen url"
+ url=`grep url: ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"url:" '{print $2}' | sed -n '1p'`
+ if [ "$url" = "" ]
+ then
+ sed -i '/ROS_PACKAGE_URL/d' $spec
+ else
+ sed -i "s#ROS_PACKAGE_URL#$url#g" $spec
+ fi
+
+ gen_requires $pkg Requires Requires ROS_PACKAGE_REQUIRES $spec
+ gen_requires $pkg BuildRequires BuildRequires ROS_PACKAGE_BUILDREQUIRES $spec
+ gen_requires $pkg test-BuildRequires BuildRequires ROS_TEST_BUILDREQUIRES $spec
+
+ if [ "$pkg" == "ament-cmake-core" -o "$pkg" == "ament-package" -o "$pkg" == "ros-workspace" ]
+ then
+ sed -i '/ROS_ALL_FIX_REQUIRES/d' $spec
+ else
+ sed -i "s#ROS_ALL_FIX_REQUIRES##g" $spec
+ fi
+
+ debug_log "gen changelog"
+ maintainer=`grep maintainer: ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"maintainer:" '{print $2}'`
+ #changetime=`date +"%a %b %d %Y"`
+ changetime=`date +"%b %Y"`
+ changelog="$changetime $maintainer - $base_version-$release_version"
+ sed -i "s#ROS_PACKAGE_CHANGELOG#$changelog#g" $spec
+
+ debug_log "gen spec ok"
+}
+
+spec_type_fix()
+{
+ pkg=$1
+
+ spec_type=`grep "$pkg " ${ROOT}/spec_fix/spec-type-fix | cut -d' ' -f2`
+ if [ "$spec_type" == "" ]
+ then
+ return
+ fi
+
+
+ if [ "$SRC_TAR_FROM" == "ubuntu" ]
+ then
+ spec_tplt=${spec_type}-ubuntu.spec
+ else
+ spec_tplt=${spec_type}.spec
+ fi
+
+ cp ${ROOT}/template/${spec_tplt} $pkg.spec
+}
+
+package_fix()
+{
+ pkg=$1
+ pkg_repo=$2
+
+ if [ -d ${ROS_PACKAGE_FIX}/$pkg ]
+ then
+ find ${ROS_PACKAGE_FIX}/$pkg -type f | grep -v "\.fix" | xargs -i cp {} $pkg_repo/
+ replace_key_word ROS_SOURCE_FIX ${ROS_PACKAGE_FIX}/$pkg/source.fix $spec
+ replace_key_word ROS_PREP_FIX ${ROS_PACKAGE_FIX}/$pkg/prep.fix $spec
+ else
+ sed -i '/ROS_SOURCE_FIX/d' $spec
+ sed -i '/ROS_PREP_FIX/d' $spec
+ fi
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ for repo in `cat ${ROS_PKG_LIST} | awk '{print $2}' | sort | uniq`
+ do
+
+ #if [ "$repo" != "control_box_rst" ]
+ #then
+ # continue
+ #fi
+
+ [ "$GEN_ONE" == "" ] && info_log "start to gen $repo"
+
+ mkdir -p ${ROS_REPO_BASE}/${repo}/
+ cd ${ROS_REPO_BASE}/${repo}/
+
+ grep -P "\t$repo\t" ${ROS_PKG_SRC} >${OUTPUT}/.repo_pkgs
+ grep -P "\t$repo/" ${ROS_PKG_SRC} >>${OUTPUT}/.repo_pkgs
+
+ if [ "$GEN_ONE" == "" ]
+ then
+ echo "" >_multibuild
+ fi
+
+ while read pkg path version
+ do
+ if [ "$GEN_ONE" != "" -a "$pkg" != "$GEN_ONE" ]
+ then
+ continue
+ fi
+
+ if [ "$pkg" = "" -o "$path" = "" -o "$version" = "" ]
+ then
+ error_log "Wrong package $pkg"
+ exit 1
+ fi
+
+ base_version=`echo $version | awk -F"-" '{print $1}'`
+ release_version=`echo $version | awk -F"-" '{print $2}'`
+
+ if [ "$SRC_TAR_FROM" == "ubuntu" ]
+ then
+ pkg_dir_name=`cd ${ROS_SRC_BASE}/${repo} && ls ros-${ROS_DISTRO}-${pkg}_*.orig.tar.gz | sed -e "s#.orig.tar.gz##g" | sed -e "s#_#-#g"`
+ pkg_tar=`cd ${ROS_SRC_BASE}/${repo} && ls ros-${ROS_DISTRO}-${pkg}_*.orig.tar.gz`
+ cp ${ROS_SRC_BASE}/${repo}/$pkg_tar ${ROS_REPO_BASE}/$repo/
+ if [ -f ${ROS_SRC_BASE}/${repo}/${pkg_dir_name}/setup.py ]
+ then
+ cp ${ROOT}/template/py-ubuntu.spec $pkg.spec
+ else
+ cp ${ROOT}/template/cmake-ubuntu.spec $pkg.spec
+ fi
+
+ pkg_dir_name=${ROS_SRC_BASE}/${repo}/$pkg_dir_name
+ else
+ pkg_dir_name=$pkg-$base_version
+ mkdir -p $pkg_dir_name
+ cp -r ${ROS_SRC_BASE}/$path/* $pkg-$base_version/
+ tar -czf $pkg-$base_version.tar.gz $pkg-$base_version
+
+ if [ -f $pkg-$base_version/setup.py ]
+ then
+ cp ${ROOT}/template/py.spec $pkg.spec
+ else
+ cp ${ROOT}/template/cmake.spec $pkg.spec
+ fi
+ fi
+
+ spec_type_fix $pkg
+
+ modify_spec $pkg $pkg.spec $pkg_dir_name $base_version $release_version
+
+ package_fix $pkg ${ROS_REPO_BASE}/${repo}
+
+ if [ "$GEN_ONE" == "" ]
+ then
+ echo -e "\t$pkg" >>_multibuild
+ fi
+ done < ${OUTPUT}/.repo_pkgs
+
+ if [ "$GEN_ONE" == "" ]
+ then
+ echo "" >>_multibuild
+ fi
+ done
+
+ info_log "Gen ros-pkg-src.list done, you can find it in ${ROS_PKG_SRC}"
+}
+
+main $*
diff --git a/get-deps-src-yum.sh b/get-deps-src-yum.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e459dd5d92ace28a1a089a139566102338a712a6
--- /dev/null
+++ b/get-deps-src-yum.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_DEPS_SRC=${OUTPUT}/ros-deps-src.list
+ROS_DEPS_YUM=${OUTPUT}/ros-deps-yum.list
+
+prepare()
+{
+ if [ ! -f ${ROS_DEPS_SRC} ]
+ then
+ error_log "Can not find ${ROS_DEPS_SRC}, you can use get-deps-src.sh to create it"
+ exit 1
+ fi
+
+ cat /etc/os-release | grep -q openEuler
+ if [ $? -ne 0 ]
+ then
+ error_log "Please run me in openEuler system"
+ exit 1
+ fi
+
+ >${ROS_DEPS_YUM}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read pkg src
+ do
+ info_log "Analyse $pkg"
+ if [ "$src" = "" ]
+ then
+ src="NULL"
+ fi
+
+ yum search $pkg >${OUTPUT}/.yum 2>/dev/null
+
+ grep -Rq "^$pkg\." ${OUTPUT}/.yum
+ if [ $? -eq 0 ]
+ then
+ echo -e "$pkg\t$src\t$pkg" >>${ROS_DEPS_YUM}
+ continue
+ fi
+
+ devel=`echo "$pkg" | sed "s/-dev$/-devel/g"`
+ yum search $devel >${OUTPUT}/.yum 2>/dev/null
+ grep -Rq "^$devel\." ${OUTPUT}/.yum
+ if [ $? -eq 0 ]
+ then
+ echo -e "$pkg\t$src\t$devel" >>${ROS_DEPS_YUM}
+ continue
+ fi
+
+ lib=`echo "$devel" | sed "s/^lib//g"`
+ yum search $lib >${OUTPUT}/.yum 2>/dev/null
+ grep -Rq "^$lib\." ${OUTPUT}/.yum
+ if [ $? -eq 0 ]
+ then
+ echo -e "$pkg\t$src\t$lib" >>${ROS_DEPS_YUM}
+ continue
+ fi
+
+ echo -e "$pkg\t$src\t" >>${ROS_DEPS_YUM}
+
+ done < ${ROS_DEPS_SRC}
+
+
+ info_log "Gen ros-deps-yum.list done, you can find it in ${ROS_DEPS_YUM}"
+}
+
+main $*
\ No newline at end of file
diff --git a/get-deps-src.sh b/get-deps-src.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2474d259af88d654ff399a19634f1342f3405cd9
--- /dev/null
+++ b/get-deps-src.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_DEPS=${OUTPUT}/ros-deps.list
+ROS_DEPS_SRC=${OUTPUT}/ros-deps-src.list
+
+prepare()
+{
+ if [ ! -d ${ROS_DEPS_BASE} ]
+ then
+ error_log "Can not find ${ROS_DEPS_BASE}, you can use get-pkg-deps.sh to create it"
+ exit 1
+ fi
+
+ cat /etc/os-release | grep -q Ubuntu
+ if [ $? -ne 0 ]
+ then
+ error_log "Please run me in Ubuntu system"
+ exit 1
+ fi
+
+ >${ROS_DEPS}
+ >${ROS_DEPS_SRC}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ for i in `cat ${ROS_DEPS_BASE}/*ExtDeps | sort | uniq`
+ do
+ info_log "Analyse $i"
+
+ echo -e "$i" >> ${ROS_DEPS}
+
+ apt show $i 2>/dev/null >${OUTPUT}/.apt_result
+ if [ $? -ne 0 ]
+ then
+ error_log "Can not find pkg $i"
+ echo $i >>${ROS_DEPS_SRC}
+ continue
+ fi
+
+ src_pkg=`cat ${OUTPUT}/.apt_result | grep "Source: " | awk -F "Source: " '{print $2}'`
+ if [ "$src_pkg" = "" ]
+ then
+
+ src_pkg=$i
+ fi
+
+ echo -e "$i\t$src_pkg" >> ${ROS_DEPS_SRC}
+ done
+
+
+ info_log "Gen ros-pkg-src.list done, you can find it in ${ROS_DEPS_SRC}"
+}
+
+main $*
diff --git a/get-package-xml.py b/get-package-xml.py
new file mode 100644
index 0000000000000000000000000000000000000000..58f03158f3d9c3ebfd6c01bd8ceaaa6e8900383a
--- /dev/null
+++ b/get-package-xml.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python3
+
+from xml.dom.minidom import parse
+import xml.dom.minidom
+import sys
+
+PackageXMLTree = xml.dom.minidom.parse(sys.argv[2])
+collection = PackageXMLTree.documentElement
+
+def get_depend(depend_name, org_depend_file_name):
+
+ deps = collection.getElementsByTagName(depend_name)
+
+ f = open(org_depend_file_name, 'a+', encoding='utf-8')
+
+ for dep in deps:
+ if dep.hasAttribute("ROS_VERSION"):
+ ros_version = dep.getAttribute("ROS_VERSION")
+ if ros_version == "1":
+ continue
+
+ if dep.hasAttribute("type"):
+ url_type = dep.getAttribute("type")
+ if url_type != "website":
+ continue
+
+ if depend_name == "maintainer" and dep.hasAttribute("email"):
+ email = dep.getAttribute("email")
+ f.write(depend_name + ":" + dep.childNodes[0].data + " " + email + "\n")
+ f.close()
+ return
+
+ if depend_name == "description":
+ f.write(dep.childNodes[0].data + "\n")
+ else:
+ f.write(depend_name + ":" + dep.childNodes[0].data + "\n")
+
+
+ f.close()
+
+get_depend("depend", sys.argv[1])
+get_depend("build_depend", sys.argv[1])
+get_depend("build_export_depend", sys.argv[1])
+get_depend("exec_depend", sys.argv[1])
+get_depend("test_depend", sys.argv[1])
+get_depend("buildtool_depend", sys.argv[1])
+get_depend("buildtool_export_depend", sys.argv[1])
+get_depend("license", sys.argv[1])
+get_depend("url", sys.argv[1])
+get_depend("maintainer", sys.argv[1])
+get_depend("description", sys.argv[1] + "-description")
diff --git a/get-pkg-deps.sh b/get-pkg-deps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e9a9f41baa2d22db2b4b4f6c885471260cb372af
--- /dev/null
+++ b/get-pkg-deps.sh
@@ -0,0 +1,139 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_PKG_SRC=${OUTPUT}/ros-pkg-src.list
+
+prepare()
+{
+ if [ "${ROS_SRC_BASE}" = "" ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -d ${ROS_SRC_BASE} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_LIST}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_PKG_SRC} ]
+ then
+ error_log "Can not find ${ROS_PKG_SRC}, you can use get-pkg-src.sh to create it"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_DEPS_BASE}
+ rm -f ${ROS_DEPS_BASE}/*
+}
+
+write_dep()
+{
+ require_type=$1
+ dep=$2
+ require_file=$3
+
+ grep -qP "$dep$" ${require_file} 2>/dev/null
+ [ $? -eq 0 ] && return
+
+ echo "${require_type}: ${dep}" >> ${require_file}
+}
+
+gen_depend()
+{
+ pkg=$1
+ base_path=$2
+ depend_name=$3
+ dep_type=$4
+
+ #depend=`sed -n "/<${depend_name}/p" ${ROS_SRC_BASE}/${base_path}/package.xml | grep -v "ROS_VERSION == 1" |sed "s#<${depend_name}>##g" | sed "s#${depend_name}>##g" | sed "s#<${depend_name}.*>##g" | sed "s/[[:space:]]//g" | grep -v "\-\-"`
+ depend=`grep -P "^${depend_name}:" ${ROS_DEPS_BASE}/$pkg-PackageXml | awk -F"${depend_name}:" '{print $2}'`
+ if [ "$depend" = "" ]
+ then
+ return 0
+ fi
+
+ for i in $depend
+ do
+ match_ros_pkg=`echo $i | sed "s#_#-#g"`
+ grep -Pq "^${match_ros_pkg}\t" ${ROS_PKG_LIST}
+ if [ $? -eq 0 ]
+ then
+ dep="ros-%{ros_distro}-${match_ros_pkg}"
+ else
+ dep=$i
+ echo "$i" >>${ROS_DEPS_BASE}/$pkg-ExtDeps
+ fi
+
+ case $dep_type in
+ "all")
+ write_dep Requires $dep ${ROS_DEPS_BASE}/$pkg-Requires
+ write_dep BuildRequires $dep ${ROS_DEPS_BASE}/$pkg-BuildRequires
+ ;;
+ "exec")
+ write_dep Requires $dep ${ROS_DEPS_BASE}/$pkg-Requires
+ ;;
+ "build")
+ write_dep BuildRequires $dep ${ROS_DEPS_BASE}/$pkg-BuildRequires
+ ;;
+ "test")
+ write_dep BuildRequires $dep ${ROS_DEPS_BASE}/$pkg-test-BuildRequires
+ ;;
+ "*")
+ error_log "Wrong dep_type $dep_type"
+ ;;
+ esac
+ done
+
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read pkg path version
+ do
+ if [ "$pkg" = "" -o "$path" = "" ]
+ then
+ continue
+ fi
+
+ if [ ! -f ${ROS_SRC_BASE}/${path}/package.xml ]
+ then
+ error_log "can not find package.xml in ${ROS_SRC_BASE}/${path}/"
+ continue
+ fi
+
+ #if [ "$pkg" != "control-box-rst" ]
+ #then
+ # continue
+ #fi
+
+ info_log "Gen depends for $pkg"
+
+ >${ROS_DEPS_BASE}/$pkg-PackageXml
+ python3 get-package-xml.py ${ROS_DEPS_BASE}/$pkg-PackageXml ${ROS_SRC_BASE}/${path}/package.xml
+
+ gen_depend $pkg $path depend all
+ gen_depend $pkg $path build_depend build
+ gen_depend $pkg $path build_export_depend exec
+ gen_depend $pkg $path exec_depend exec
+ gen_depend $pkg $path test_depend test
+ gen_depend $pkg $path buildtool_depend build
+ gen_depend $pkg $path buildtool_export_depend exec
+
+ done < ${ROS_PKG_SRC}
+
+ info_log "Gen ros-pkg-src.list done, you can find it in ${ROS_DEPS_BASE}"
+}
+
+main $*
diff --git a/get-pkg-src.sh b/get-pkg-src.sh
new file mode 100755
index 0000000000000000000000000000000000000000..acd0a3f956a9b23b4db55d16dbe4671a03a1498e
--- /dev/null
+++ b/get-pkg-src.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_PKG_SRC=${OUTPUT}/ros-pkg-src.list
+
+prepare()
+{
+ if [ "${ROS_SRC_BASE}" = "" ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -d ${ROS_SRC_BASE} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ if [ ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_LIST}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ >${ROS_PKG_SRC}
+}
+
+
+find_pkg_src_path_by_package_xml()
+{
+ pkg_org_name=$1
+ base_path=$2
+
+ package_xml=`find ${ROS_SRC_BASE}/${base_path} -name package.xml`
+
+ for i in $package_xml
+ do
+ grep -Fq "$pkg_org_name" $i
+ if [ $? -eq 0 ]
+ then
+ pkg_src_path=`echo $i | sed "s#${ROS_SRC_BASE}/##g" | sed "s#/package.xml##g"`
+ echo $pkg_src_path
+ return 0
+ fi
+ done
+
+ return 0
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read pkg base_path version
+ do
+ if [ "$pkg" = "" -o "$base_path" = "" ]
+ then
+ continue
+ fi
+
+ if [ "$SRC_TAR_FROM" == "ubuntu" ]
+ then
+ pkg_src_path=""
+ pkg_org_name=`cd ${ROS_SRC_BASE}/${base_path} && ls ros-${ROS_DISTRO}-${pkg}_*.orig.tar.gz | sed -e "s#.orig.tar.gz##g" | sed -e "s#_#-#g"`
+ version=`cd ${ROS_SRC_BASE}/${base_path} && ls ros-${ROS_DISTRO}-${pkg}_*.orig.tar.gz | cut -d'_' -f2 | sed -e "s#.orig.tar.gz##g"`
+
+ if [ -f ${ROS_SRC_BASE}/${base_path}/${pkg_org_name}/package.xml ]
+ then
+ pkg_src_path=${base_path}/${pkg_org_name}
+ fi
+
+ if [ "$pkg_src_path" = "" ]
+ then
+ error_log "Can not find src path for package $pkg"
+ fi
+ echo -e "$pkg\t$pkg_src_path\t$version-1" >> ${ROS_PKG_SRC}
+ else
+ pkg_org_name=`echo $pkg | sed "s/-/_/g"`
+ pkg_src_path=""
+
+ if [ -f ${ROS_SRC_BASE}/${base_path}/${pkg_org_name}/package.xml ]
+ then
+ pkg_src_path=${base_path}/${pkg_org_name}
+ fi
+
+ if [ -f ${ROS_SRC_BASE}/${base_path}/package.xml ]
+ then
+ pkg_src_path=${base_path}
+ fi
+
+ if [ "$pkg_src_path" = "" ]
+ then
+ pkg_src_path=`find_pkg_src_path_by_package_xml $pkg_org_name ${base_path}`
+ fi
+
+ if [ "$pkg_src_path" = "" ]
+ then
+ error_log "Can not find src path for package $pkg"
+ fi
+ echo -e "$pkg\t$pkg_src_path\t$version" >> ${ROS_PKG_SRC}
+ fi
+ done < ${ROS_PKG_LIST}
+
+ info_log "Gen ros-pkg-src.list done, you can find it in ${ROS_PKG_SRC}"
+}
+
+main $*
diff --git a/get-ref-count.sh b/get-ref-count.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a97478428bff8abd49ce8d0ce0d1511929b15883
--- /dev/null
+++ b/get-ref-count.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_PKG_REF_COUNT=${OUTPUT}/pkg-ref-count
+
+prepare()
+{
+ if [ ! -d ${ROS_DEPS_BASE} ]
+ then
+ error_log "Can not find ${ROS_DEPS_BASE}, you can use get-pkg-deps.sh to create it"
+ exit 1
+ fi
+
+ >${ROS_PKG_REF_COUNT}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ ls ${ROS_DEPS_BASE}/*Requires | grep -v "\-test\-" | xargs grep -F "ros-\${ros_distro}" | awk -F":" '{print $NF}' | awk -F'ros-\\${ros_distro}-' '{print $2}' >${OUTPUT}/.requires
+
+ while pkg prj version
+ do
+ count=`grep -P "^$pkg$" ${OUTPUT}.requires | wc -l`
+ echo -e "$pkg\t$count" >>${ROS_PKG_REF_COUNT}
+ done < ${ROS_PKG_LIST}
+
+
+ info_log "Gen pkg-ref-count done, you can find it in ${ROS_PKG_REF_COUNT}"
+}
+
+main $*
diff --git a/get-repo-list.sh b/get-repo-list.sh
new file mode 100755
index 0000000000000000000000000000000000000000..dc34e8475c4550e89c831f4fc5dbaf1f1ad10b25
--- /dev/null
+++ b/get-repo-list.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_PROJECTS_LIST=${ROOT}/${ROS_DISTRO}/ros-projects.list
+ROS_VERSION_FIX=${ROOT}/${ROS_DISTRO}/ros-version-fix
+ROS_REPOS=${OUTPUT}/ros.repos
+ROS_REPOS_URL=${OUTPUT}/ros.url
+
+project_version_fix()
+{
+ project=$1
+ org_version=$2
+
+ if [ ! -f ${ROS_VERSION_FIX} ]
+ then
+ echo $org_version
+ return 0
+ fi
+
+ while read p fix_version
+ do
+ if [ "$p" = "$project" ]
+ then
+ echo $fix_version
+ return 0
+ fi
+ done < ${ROS_VERSION_FIX}
+
+ echo $org_version
+ return 0
+}
+
+main()
+{
+ if [ ! -f ${ROS_PROJECTS_LIST} ]
+ then
+ error_log "can not find ${ROS_PROJECTS_LIST}"
+ exit 1
+ fi
+
+ info_log "find ${ROS_PROJECTS_LIST}"
+
+ > ${ROS_PKG_LIST}
+ > ${ROS_REPOS_URL}
+ > ${ROS_PROJECTS_NAME}
+ echo "repositories:" >${ROS_REPOS}
+
+ while read pkg url status version
+ do
+ if [ "$pkg" = "" ]
+ then
+ continue
+ fi
+
+ if [ "$status" = "disabled" -o "$status" = "unknown" ]
+ then
+ info_log "$pkg is unknown or disabled, ignore"
+ continue
+ fi
+
+ echo $url | grep -q "^https://github.com"
+ if [ "$?" -eq 0 ]
+ then
+ echo $url | grep -q ".git$"
+ if [ "$?" -eq 0 ]
+ then
+ project_name=`echo $url | awk 'BEGIN {FS="\\\.git"} {print $1}' | awk -F"/" '{print $NF}'`
+ tree=master
+ new_url=$url
+ else
+ project_name=`echo $url | awk -F"/tree/" '{print $1}' | awk -F"/" '{print $NF}'`
+ tree=`echo $url | awk -F"/tree/" '{print $2}'`
+ new_url=`echo $url | awk -F"/tree/" '{print $1}'`.git
+ fi
+ fi
+
+ echo $url | grep -q "^https://gitlab.com"
+ if [ "$?" -eq 0 ]
+ then
+ echo $url | grep -q ".git$"
+ if [ "$?" -eq 0 ]
+ then
+ project_name=`echo $url | awk 'BEGIN {FS="\\\.git"} {print $1}' | awk -F"/" '{print $NF}'`
+ tree=main
+ new_url=$url
+ else
+ echo $url | grep -q "/tree"
+ if [ "$?" -ne 0 ]
+ then
+ project_name=`echo $url | awk -F"/" '{print $NF}'`
+ tree=main
+ new_url=${url}.git
+ fi
+ fi
+ fi
+
+ echo $url | grep -q "^https://bitbucket.org"
+ if [ "$?" -eq 0 ]
+ then
+ echo $url | grep -q ".git$"
+ if [ "$?" -eq 0 ]
+ then
+ project_name=`echo $url | awk 'BEGIN {FS="\\\.git"} {print $1}' | awk -F"/" '{print $NF}'`
+ tree=master
+ new_url=$url
+ fi
+ fi
+
+ if [ "$project_name" = "" -o "${new_url}" = "" -o "$version" = "" ]
+ then
+ error_log "Faild to analyse $pkg $url $new_url $version"
+ exit 1
+ fi
+
+ echo -e "$pkg\t$project_name\t$version" >> ${ROS_PKG_LIST}
+
+ grep -Fq "$new_url" ${ROS_REPOS_URL}
+ if [ $? -eq 0 ]
+ then
+ continue
+ fi
+
+ echo "$new_url" >> ${ROS_REPOS_URL}
+ echo "$project_name" >> ${ROS_PROJECTS_NAME}
+
+ fix_version=`project_version_fix $project_name $tree`
+
+ echo " $project_name:" >> ${ROS_REPOS}
+ echo " type: git" >> ${ROS_REPOS}
+ echo " url: $new_url" >> ${ROS_REPOS}
+ echo " version: $fix_version" >> ${ROS_REPOS}
+
+ echo -n "."
+ done < ${ROS_PROJECTS_LIST}
+
+ info_log "Gen ros.repos done, you can find it in ${ROS_REPOS}"
+}
+
+main
diff --git a/get-src-from-github.sh b/get-src-from-github.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c83abd05b097b3e31649b2f7e023299f0819d3c4
--- /dev/null
+++ b/get-src-from-github.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_REPOS=${OUTPUT}/ros.repos
+
+prepare()
+{
+ if [ ! -f ${ROS_REPOS} ]
+ then
+ error_log "Can not find ${ROS_REPOS}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_SRC_BASE}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to download ros-pkg."
+
+ vcs import ${ROS_SRC_BASE} <${ROS_REPOS}
+
+ info_log "Download ok, you can find source packages in ${ROS_SRC_BASE}"
+}
+
+main $*
diff --git a/get-src-from-ubuntu.sh b/get-src-from-ubuntu.sh
new file mode 100755
index 0000000000000000000000000000000000000000..06bbf92b877305f7852cebe4086e4ab93aed0c8c
--- /dev/null
+++ b/get-src-from-ubuntu.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_UBUNTU_PATH=${OUTPUT}/ubuntu
+
+prepare()
+{
+ if [ ! -f ${ROS_PKG_LIST} ]
+ then
+ error_log "Can not find ${ROS_PKG_LIST}, you can use get-repo-list.sh to create it"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_SRC_BASE}
+ rm -rf ${ROS_SRC_BASE}/*
+ mkdir -p ${ROS_UBUNTU_PATH}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to download ros-pkg."
+
+ while read pkg path version
+ do
+ if [ "$pkg" = "" -o "$path" = "" ]
+ then
+ continue
+ fi
+
+ info_log "download source package of $pkg"
+
+ mkdir -p ${ROS_SRC_BASE}/$path
+ pkg_full_name=ros-${ROS_DISTRO}-$pkg
+ if [ ! -f ${ROS_UBUNTU_PATH}/${pkg_full_name} ]
+ then
+ debug_log "wget ${pkg_full_name}"
+ wget --no-check-certificate -q --show-progress --progress=bar:force 2>&1 -c -P ${ROS_UBUNTU_PATH} ${SRC_TAR_BASE_URL}/${pkg_full_name}
+ fi
+
+ src_name=`grep orig.tar.gz ${ROS_UBUNTU_PATH}/${pkg_full_name} | cut -d'"' -f8`
+ if [ "$src_name" == "" ]
+ then
+ error_log "Can not find source package of $pkg"
+ continue
+ fi
+
+ tar -xf ${ROS_UBUNTU_PATH}/$src_name -C ${ROS_SRC_BASE}/$path/ 2>/dev/null
+ if [ $? -ne 0 ]
+ then
+ debug_log "wget ${src_name}"
+ wget --no-check-certificate -q --show-progress --progress=bar:force 2>&1 -c -P ${ROS_UBUNTU_PATH} ${SRC_TAR_BASE_URL}/${pkg_full_name}/$src_name
+ if [ ! -f ${ROS_UBUNTU_PATH}/$src_name ]
+ then
+ error_log "Fail to download source package of $pkg"
+ continue
+ fi
+ tar -xf ${ROS_UBUNTU_PATH}/$src_name -C ${ROS_SRC_BASE}/$path/
+ else
+ info_log "source package $src_name has exist"
+ fi
+
+ dir_name=`echo $src_name | sed -e "s#.orig.tar.gz##g" | sed -e "s#_#-#g"`
+
+ cp ${ROS_UBUNTU_PATH}/$src_name ${ROS_SRC_BASE}/$path/
+
+ done < ${ROS_PKG_LIST}
+
+ info_log "Download ok, you can find source packages in ${ROS_SRC_BASE}"
+}
+
+main $*
diff --git a/humble/ros-projects.list b/humble/ros-projects.list
new file mode 100644
index 0000000000000000000000000000000000000000..de573d9672013aa7a5b48c4920ab7e2f99bcac4a
--- /dev/null
+++ b/humble/ros-projects.list
@@ -0,0 +1,1117 @@
+acado-vendor https://gitlab.com/autowarefoundation/autoware.auto/acado_vendor maintained 1.0.0-4
+ackermann-msgs https://github.com/ros-drivers/ackermann_msgs/tree/ros2 maintained 2.0.2-3
+action-msgs https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+action-tutorials-cpp https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+action-tutorials-interfaces https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+action-tutorials-py https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+actionlib-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+adaptive-component https://github.com/ros-acceleration/adaptive_component/tree/rolling developed 0.2.1-2
+admittance-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+affordance-primitives https://github.com/PickNikRobotics/affordance_primitives/tree/main unknown 0.1.0-3
+ament-acceleration https://github.com/ros-acceleration/ament_acceleration/tree/rolling developed 0.2.0-2
+ament-black https://github.com/Timple/ament_black/tree/main maintained 0.1.0-1
+ament-clang-format https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-clang-tidy https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-auto https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-black https://github.com/Timple/ament_black/tree/main maintained 0.1.0-1
+ament-cmake-catch2 https://github.com/open-rmf/ament_cmake_catch2/tree/rolling developed 1.2.0-3
+ament-cmake-clang-format https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-clang-tidy https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-copyright https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-core https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-cppcheck https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-cpplint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-export-definitions https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-dependencies https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-include-directories https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-interfaces https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-libraries https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-link-flags https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-export-targets https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-flake8 https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-gen-version-h https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-gmock https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-google-benchmark https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-gtest https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-include-directories https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-libraries https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-lint-cmake https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-mypy https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-nose https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-pclint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-pep257 https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-pycodestyle https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-pyflakes https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-pytest https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-python https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-ros https://github.com/ros2/ament_cmake_ros/tree/humble maintained 0.10.0-3
+ament-cmake-target-dependencies https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-test https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-uncrustify https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cmake-version https://github.com/ament/ament_cmake/tree/humble developed 1.3.3-1
+ament-cmake-xmllint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-copyright https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cppcheck https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-cpplint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-download https://github.com/samsung-ros/ament_download/tree/ros2 developed 0.0.5-1
+ament-flake8 https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-index-cpp https://github.com/ament/ament_index/tree/humble maintained 1.4.0-2
+ament-index-python https://github.com/ament/ament_index/tree/humble maintained 1.4.0-2
+ament-lint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-lint-auto https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-lint-cmake https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-lint-common https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-mypy https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-nodl https://github.com/ubuntu-robotics/ament_nodl/tree/master developed 0.1.0-4
+ament-package https://github.com/ament/ament_package/tree/humble developed 0.14.0-4
+ament-pclint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-pep257 https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-pycodestyle https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-pyflakes https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-uncrustify https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+ament-vitis https://github.com/ros-acceleration/ament_vitis/tree/rolling developed 0.10.1-2
+ament-xmllint https://github.com/ament/ament_lint/tree/humble developed 0.12.5-1
+angles https://github.com/ros/angles/tree/humble-devel maintained 1.15.0-1
+apex-containers https://gitlab.com/ApexAI/apex_containers.git developed 0.0.4-3
+apex-test-tools https://gitlab.com/ApexAI/apex_test_tools.git developed 0.0.2-6
+apriltag https://github.com/AprilRobotics/apriltag/tree/master maintained 3.2.0-2
+apriltag-msgs https://github.com/christianrauch/apriltag_msgs/tree/master maintained 2.0.1-2
+apriltag-ros https://github.com/christianrauch/apriltag_ros/tree/master developed 3.1.1-1
+aruco https://github.com/pal-robotics/aruco_ros/tree/humble-devel developed 5.0.0-1
+aruco-msgs https://github.com/pal-robotics/aruco_ros/tree/humble-devel developed 5.0.0-1
+aruco-opencv https://github.com/fictionlab/ros_aruco_opencv/tree/humble maintained 2.1.0-1
+aruco-opencv-msgs https://github.com/fictionlab/ros_aruco_opencv/tree/humble maintained 2.1.0-1
+aruco-ros https://github.com/pal-robotics/aruco_ros/tree/humble-devel developed 5.0.0-1
+asio-cmake-module https://github.com/ros-drivers/transport_drivers/tree/main developed 1.2.0-2
+async-web-server-cpp https://github.com/fkie/async_web_server_cpp/tree/ros2-develop maintained 2.0.0-3
+automotive-autonomy-msgs https://github.com/astuff/automotive_autonomy_msgs/tree/master maintained 3.0.4-3
+automotive-navigation-msgs https://github.com/astuff/automotive_autonomy_msgs/tree/master maintained 3.0.4-3
+automotive-platform-msgs https://github.com/astuff/automotive_autonomy_msgs/tree/master maintained 3.0.4-3
+autoware-auto-msgs https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs.git developed 1.0.0-4
+avt-vimba-camera https://github.com/astuff/avt_vimba_camera/tree/ros2_master maintained 2001.1.0-3
+aws-robomaker-small-warehouse-world https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/tree/ros2 maintained 1.0.5-1
+backward-ros https://github.com/pal-robotics/backward_ros/tree/foxy-devel maintained 1.0.2-3
+bag2-to-image https://github.com/wep21/bag2_to_image/tree/main maintained 0.1.0-1
+behaviortree-cpp-v3 https://github.com/BehaviorTree/BehaviorTree.CPP/tree/v3.8 developed 3.8.2-1
+bno055 https://github.com/flynneva/bno055/tree/main maintained 0.4.1-1
+bond https://github.com/ros/bond_core/tree/ros2 maintained 3.0.2-3
+bond-core https://github.com/ros/bond_core/tree/ros2 maintained 3.0.2-3
+bondcpp https://github.com/ros/bond_core/tree/ros2 maintained 3.0.2-3
+boost-geometry-util https://github.com/OUXT-Polaris/boost_geometry_util/tree/master developed 0.0.1-1
+bosch-locator-bridge https://github.com/boschglobal/locator_ros_bridge/tree/main maintained 2.1.5-1
+builtin-interfaces https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+camera-calibration https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+camera-calibration-parsers https://github.com/ros-perception/image_common/tree/humble maintained 3.1.5-1
+camera-info-manager https://github.com/ros-perception/image_common/tree/humble maintained 3.1.5-1
+can-msgs https://github.com/ros-industrial/ros_canopen/tree/dashing-devel developed 2.0.0-4
+cartographer https://github.com/ros2/cartographer/tree/ros2 maintained 2.0.9002-2
+cartographer-ros https://github.com/ros2/cartographer_ros/tree/ros2 maintained 2.0.9000-2
+cartographer-ros-msgs https://github.com/ros2/cartographer_ros/tree/ros2 maintained 2.0.9000-2
+cartographer-rviz https://github.com/ros2/cartographer_ros/tree/ros2 maintained 2.0.9000-2
+cascade-lifecycle-msgs https://github.com/fmrico/cascade_lifecycle/tree/humble-devel developed 1.0.2-2
+chomp-motion-planner https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+class-loader https://github.com/ros/class_loader/tree/humble maintained 2.2.0-3
+color-names https://github.com/OUXT-Polaris/color_names-release/tree/master developed 0.0.3-3
+common-interfaces https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+composition https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+composition-interfaces https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+compressed-depth-image-transport https://github.com/ros-perception/image_transport_plugins/tree/humble maintained 2.5.0-2
+compressed-image-transport https://github.com/ros-perception/image_transport_plugins/tree/humble maintained 2.5.0-2
+console-bridge-vendor https://github.com/ros2/console_bridge_vendor/tree/humble maintained 1.4.1-1
+control-box-rst https://github.com/rst-tu-dortmund/control_box_rst/tree/foxy-devel developed 0.0.7-1
+control-msgs https://github.com/ros-controls/control_msgs/tree/foxy-devel maintained 4.1.0-1
+control-toolbox https://github.com/ros-controls/control_toolbox/tree/ros2-master maintained 2.2.0-1
+controller-interface https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+controller-manager https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+controller-manager-msgs https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+costmap-queue https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+cudnn-cmake-module https://github.com/tier4/cudnn_cmake_module/tree/main maintained 0.0.1-3
+cv-bridge https://github.com/ros-perception/vision_opencv/tree/humble maintained 3.2.1-1
+cyclonedds https://github.com/eclipse-cyclonedds/cyclonedds/tree/releases/0.9.x maintained 0.9.1-1
+dataspeed-can https://bitbucket.org/dataspeedinc/dataspeed_can.git developed 2.0.1-1
+dataspeed-can-msg-filters https://bitbucket.org/dataspeedinc/dataspeed_can.git developed 2.0.1-1
+dataspeed-can-usb https://bitbucket.org/dataspeedinc/dataspeed_can.git developed 2.0.1-1
+dataspeed-dbw-common https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dataspeed-dbw-gateway https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dataspeed-dbw-msgs https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dataspeed-ulc https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dataspeed-ulc-can https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dataspeed-ulc-msgs https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-fca https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-fca-can https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-fca-description https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-fca-joystick-demo https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-fca-msgs https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-ford https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-ford-can https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-ford-description https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-ford-joystick-demo https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-ford-msgs https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-polaris https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-polaris-can https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-polaris-description https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-polaris-joystick-demo https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+dbw-polaris-msgs https://bitbucket.org/dataspeedinc/dbw_ros.git developed 2.1.1-1
+demo-nodes-cpp https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+demo-nodes-cpp-native https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+demo-nodes-py https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+depth-image-proc https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+depthai https://github.com/luxonis/depthai-core/tree/ros-release developed 2.20.2-1
+depthai-bridge https://github.com/luxonis/depthai-ros/tree/humble developed 2.6.3-1
+depthai-examples https://github.com/luxonis/depthai-ros/tree/humble developed 2.6.3-1
+depthai-ros-driver https://github.com/luxonis/depthai-ros/tree/humble developed 2.6.3-1
+depthai-ros-msgs https://github.com/luxonis/depthai-ros/tree/humble developed 2.6.3-1
+depthai-ros https://github.com/luxonis/depthai-ros/tree/humble developed 2.6.3-1
+depthimage-to-laserscan https://github.com/ros-perception/depthimage_to_laserscan/tree/ros2 maintained 2.5.0-3
+desktop https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+desktop-full https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+diagnostic-aggregator https://github.com/ros/diagnostics/tree/ros2 maintained 3.1.0-2
+diagnostic-common-diagnostics https://github.com/ros/diagnostics/tree/ros2 maintained 3.1.0-2
+diagnostic-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+diagnostic-updater https://github.com/ros/diagnostics/tree/ros2 maintained 3.1.0-2
+diagnostics https://github.com/ros/diagnostics/tree/ros2 maintained 3.1.0-2
+diff-drive-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+dolly https://github.com/chapulina/dolly/tree/galactic developed 0.4.0-3
+dolly-follow https://github.com/chapulina/dolly/tree/galactic developed 0.4.0-3
+dolly-gazebo https://github.com/chapulina/dolly/tree/galactic developed 0.4.0-3
+dolly-ignition https://github.com/chapulina/dolly/tree/galactic developed 0.4.0-3
+domain-bridge https://github.com/ros2/domain_bridge/tree/humble developed 0.5.0-1
+domain-coordinator https://github.com/ros2/ament_cmake_ros/tree/humble maintained 0.10.0-3
+dummy-map-server https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+dummy-robot-bringup https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+dummy-sensors https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+dwb-core https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+dwb-critics https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+dwb-msgs https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+dwb-plugins https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+dynamic-edt-3d https://github.com/octomap/octomap/tree/devel maintained 1.9.8-1
+dynamixel-sdk https://github.com/ROBOTIS-GIT/DynamixelSDK/tree/ros2 maintained 3.7.60-1
+dynamixel-sdk-custom-interfaces https://github.com/ROBOTIS-GIT/DynamixelSDK/tree/ros2 maintained 3.7.60-1
+dynamixel-sdk-examples https://github.com/ROBOTIS-GIT/DynamixelSDK/tree/ros2 maintained 3.7.60-1
+dynamixel-workbench https://github.com/ROBOTIS-GIT/dynamixel-workbench/tree/humble-devel maintained 2.2.3-1
+dynamixel-workbench-msgs https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs/tree/humble-devel maintained 2.0.3-1
+dynamixel-workbench-toolbox https://github.com/ROBOTIS-GIT/dynamixel-workbench/tree/humble-devel maintained 2.2.3-1
+ecl-build https://github.com/stonier/ecl_tools/tree/devel maintained 1.0.3-2
+ecl-license https://github.com/stonier/ecl_tools/tree/devel maintained 1.0.3-2
+ecl-tools https://github.com/stonier/ecl_tools/tree/devel maintained 1.0.3-2
+effort-controllers https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+eigen-stl-containers https://github.com/ros/eigen_stl_containers/tree/ros2 maintained 1.0.0-4
+eigen3-cmake-module https://github.com/ros2/eigen3_cmake_module/tree/humble maintained 0.1.1-4
+eigenpy https://github.com/stack-of-tasks/eigenpy/tree/devel maintained 2.9.2-1
+example-interfaces https://github.com/ros2/example_interfaces/tree/humble maintained 0.9.3-2
+examples-rclcpp-async-client https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-cbg-executor https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-action-client https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-action-server https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-client https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-composition https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-publisher https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-service https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-subscriber https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-minimal-timer https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-multithreaded-executor https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclcpp-wait-set https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-executors https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-guard-conditions https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-action-client https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-action-server https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-client https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-publisher https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-service https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-minimal-subscriber https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-rclpy-pointcloud-publisher https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+examples-tf2-py https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+fastcdr https://github.com/eProsima/Fast-CDR/tree/master maintained 1.0.24-2
+fastrtps https://github.com/eProsima/Fast-DDS/tree/2.6.x maintained 2.6.4-1
+fastrtps-cmake-module https://github.com/ros2/rosidl_typesupport_fastrtps/tree/humble developed 2.2.0-2
+filters https://github.com/ros/filters/tree/ros2 maintained 2.1.0-3
+find-object-2d https://github.com/introlab/find-object/tree/humble-devel maintained 0.7.0-1
+fluent-rviz https://github.com/ForteFibre/FluentRviz/tree/ros2 developed 0.0.3-2
+fmi-adapter https://github.com/boschresearch/fmi_adapter/tree/humble maintained 2.1.1-1
+fmi-adapter-examples https://github.com/boschresearch/fmi_adapter/tree/humble maintained 2.1.1-1
+fmilibrary-vendor https://github.com/boschresearch/fmilibrary_vendor/tree/humble maintained 1.0.1-1
+fogros2 https://github.com/BerkeleyAutomation/FogROS2/tree/humble developed 0.1.7-1
+fogros2-examples https://github.com/BerkeleyAutomation/FogROS2/tree/humble developed 0.1.7-1
+foonathan-memory-vendor https://github.com/eProsima/foonathan_memory_vendor/tree/master maintained 1.2.0-3
+force-torque-sensor-broadcaster https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+foros https://github.com/42dot/foros/tree/humble maintained 0.4.1-2
+foros-examples https://github.com/42dot/foros/tree/humble maintained 0.4.1-2
+foros-inspector https://github.com/42dot/foros/tree/humble maintained 0.4.1-2
+foros-msgs https://github.com/42dot/foros/tree/humble maintained 0.4.1-2
+forward-command-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+four-wheel-steering-msgs https://github.com/ros-drivers/four_wheel_steering_msgs/tree/ros2 maintained 2.0.1-3
+foxglove-bridge https://github.com/foxglove/ros-foxglove-bridge/tree/main developed 0.4.1-1
+foxglove-msgs https://github.com/foxglove/schemas/tree/main developed 2.1.1-1
+gazebo-dev https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2 maintained 3.7.0-1
+gazebo-msgs https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2 maintained 3.7.0-1
+gazebo-plugins https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2 maintained 3.7.0-1
+gazebo-ros https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2 maintained 3.7.0-1
+gazebo-ros-pkgs https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2 maintained 3.7.0-1
+gazebo-ros2-control https://github.com/ros-simulation/gazebo_ros2_control/tree/master developed 0.4.1-1
+gazebo-ros2-control-demos https://github.com/ros-simulation/gazebo_ros2_control/tree/master developed 0.4.1-1
+gc-spl-2022 https://github.com/ros-sports/gc_spl/tree/humble developed 2.0.0-1
+generate-parameter-library https://github.com/PickNikRobotics/generate_parameter_library/tree/main developed 0.3.1-1
+generate-parameter-library-example https://github.com/PickNikRobotics/generate_parameter_library/tree/main developed 0.3.1-1
+generate-parameter-library-py https://github.com/PickNikRobotics/generate_parameter_library/tree/main developed 0.3.1-1
+geodesy https://github.com/ros-geographic-info/geographic_info/tree/ros2 maintained 1.0.4-6
+geographic-info https://github.com/ros-geographic-info/geographic_info/tree/ros2 maintained 1.0.4-6
+geographic-msgs https://github.com/ros-geographic-info/geographic_info/tree/ros2 maintained 1.0.4-6
+geometric-shapes https://github.com/ros-planning/geometric_shapes/tree/ros2 maintained 2.1.3-2
+geometry-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+geometry-tutorials https://github.com/ros/geometry_tutorials/tree/ros2 developed 0.3.6-1
+geometry2 https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+gmock-vendor https://github.com/ament/googletest/tree/humble maintained 1.10.9004-4
+google-benchmark-vendor https://github.com/ament/google_benchmark_vendor/tree/humble maintained 0.1.1-2
+gps-msgs https://github.com/swri-robotics/gps_umd/tree/dashing-devel developed 1.0.4-3
+gps-tools https://github.com/swri-robotics/gps_umd/tree/dashing-devel developed 1.0.4-3
+gps-umd https://github.com/swri-robotics/gps_umd/tree/dashing-devel developed 1.0.4-3
+gpsd-client https://github.com/swri-robotics/gps_umd/tree/dashing-devel developed 1.0.4-3
+graph-msgs https://github.com/PickNikRobotics/graph_msgs/tree/ros2 maintained 0.2.0-3
+grasping-msgs https://github.com/mikeferguson/grasping_msgs/tree/ros2 maintained 0.4.0-1
+grbl-msgs https://github.com/flynneva/grbl_msgs/tree/main maintained 0.0.2-6
+grbl-ros https://github.com/flynneva/grbl_ros/tree/devel maintained 0.0.16-4
+grid-map https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-cmake-helpers https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-core https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-costmap-2d https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-cv https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-demos https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-filters https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-loader https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-msgs https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-octomap https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-pcl https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-ros https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-rviz-plugin https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-sdf https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+grid-map-visualization https://github.com/ANYbotics/grid_map/tree/humble developed 2.0.0-1
+gripper-controllers https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+gscam https://github.com/ros-drivers/gscam/tree/ros2 developed 2.0.2-1
+gtest-vendor https://github.com/ament/googletest/tree/humble maintained 1.10.9004-4
+gurumdds-cmake-module https://github.com/ros2/rmw_gurumdds/tree/humble developed 3.3.1-1
+hardware-interface https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+hash-library-vendor https://github.com/tier4/hash_library_vendor/tree/main maintained 0.1.1-3
+hey5-description https://github.com/pal-robotics/hey5_description/tree/humble-devel maintained 3.0.2-1
+hls-lfcd-lds-driver https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver/tree/rolling-devel developed 2.0.4-3
+hpp-fcl https://github.com/humanoid-path-planner/hpp-fcl/tree/devel developed 2.2.0-1
+iceoryx-binding-c https://github.com/eclipse-iceoryx/iceoryx/tree/release_2.0 developed 2.0.3-1
+iceoryx-hoofs https://github.com/eclipse-iceoryx/iceoryx/tree/release_2.0 developed 2.0.3-1
+iceoryx-posh https://github.com/eclipse-iceoryx/iceoryx/tree/release_2.0 developed 2.0.3-1
+ifm3d-core https://github.com/ros2-gbp/ifm3d-release.git developed 0.18.0-7
+ign-ros2-control https://github.com/ros-controls/gz_ros2_control/tree/humble developed 0.4.3-2
+ign-ros2-control-demos https://github.com/ros-controls/gz_ros2_control/tree/humble developed 0.4.3-2
+ignition-cmake2-vendor https://github.com/ignition-release/ignition_cmake2_vendor/tree/humble maintained 0.0.2-2
+ignition-math6-vendor https://github.com/ignition-release/ignition_math6_vendor/tree/humble maintained 0.0.2-2
+image-common https://github.com/ros-perception/image_common/tree/humble maintained 3.1.5-1
+image-geometry https://github.com/ros-perception/vision_opencv/tree/humble maintained 3.2.1-1
+image-pipeline https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+image-proc https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+image-publisher https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+image-rotate https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+image-tools https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+image-transport https://github.com/ros-perception/image_common/tree/humble maintained 3.1.5-1
+image-transport-plugins https://github.com/ros-perception/image_transport_plugins/tree/humble maintained 2.5.0-2
+image-view https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+imu-complementary-filter https://github.com/CCNYRoboticsLab/imu_tools/tree/humble maintained 2.1.3-1
+imu-filter-madgwick https://github.com/CCNYRoboticsLab/imu_tools/tree/humble maintained 2.1.3-1
+imu-sensor-broadcaster https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+imu-tools https://github.com/CCNYRoboticsLab/imu_tools/tree/humble maintained 2.1.3-1
+interactive-markers https://github.com/ros-visualization/interactive_markers/tree/humble maintained 2.3.2-2
+intra-process-demo https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+io-context https://github.com/ros-drivers/transport_drivers/tree/main developed 1.2.0-2
+irobot-create-common-bringup https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-control https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-description https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-gazebo-bringup https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-gazebo-plugins https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-gazebo-sim https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-ignition-bringup https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-ignition-plugins https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-ignition-sim https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-ignition-toolbox https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-msgs https://github.com/iRobotEducation/irobot_create_msgs/tree/main unknown 2.1.0-1
+irobot-create-nodes https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+irobot-create-toolbox https://github.com/ros2-gbp/create3_sim-release.git developed 2.0.0-1
+joint-limits https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+joint-state-broadcaster https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+joint-state-publisher https://github.com/ros/joint_state_publisher/tree/ros2 maintained 2.3.0-1
+joint-state-publisher-gui https://github.com/ros/joint_state_publisher/tree/ros2 maintained 2.3.0-1
+joint-trajectory-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+joy https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+joy-linux https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+joy-teleop https://github.com/ros-teleop/teleop_tools/tree/foxy-devel maintained 1.3.0-1
+joy-tester https://github.com/joshnewans/joy_tester/tree/main maintained 0.0.2-1
+kdl-parser https://github.com/ros/kdl_parser/tree/humble maintained 2.6.4-1
+key-teleop https://github.com/ros-teleop/teleop_tools/tree/foxy-devel maintained 1.3.0-1
+keyboard-handler https://github.com/ros-tooling/keyboard_handler/tree/humble developed 0.0.5-1
+kinematics-interface https://github.com/ros-controls/kinematics_interface/tree/master developed 0.1.0-1
+kinematics-interface-kdl https://github.com/ros-controls/kinematics_interface/tree/master developed 0.1.0-1
+kobuki-ros-interfaces https://github.com/kobuki-base/kobuki_ros_interfaces/tree/release/1.0.x maintained 1.0.0-1
+kobuki-velocity-smoother https://github.com/kobuki-base/kobuki_velocity_smoother/tree/release/0.15.x maintained 0.15.0-1
+lanelet2 https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-core https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-examples https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-io https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-maps https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-projection https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-python https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-routing https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-traffic-rules https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+lanelet2-validation https://github.com/fzi-forschungszentrum-informatik/lanelet2/tree/master maintained 1.1.1-4
+laser-filters https://github.com/ros-perception/laser_filters/tree/ros2 maintained 2.0.5-1
+laser-geometry https://github.com/ros-perception/laser_geometry/tree/humble maintained 2.4.0-2
+laser-proc https://github.com/ros-perception/laser_proc/tree/ros2-devel maintained 1.0.2-5
+launch https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+launch-pal https://github.com/pal-robotics/launch_pal/tree/master maintained 0.0.6-1
+launch-param-builder https://github.com/PickNikRobotics/launch_param_builder/tree/main maintained 0.1.1-1
+launch-pytest https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+launch-ros https://github.com/ros2/launch_ros/tree/humble maintained 0.19.4-1
+launch-system-modes https://github.com/micro-ROS/system_modes/tree/master developed 0.9.0-6
+launch-testing https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+launch-testing-ament-cmake https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+launch-testing-examples https://github.com/ros2/examples/tree/humble maintained 0.15.1-1
+launch-testing-ros https://github.com/ros2/launch_ros/tree/humble maintained 0.19.4-1
+launch-xml https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+launch-yaml https://github.com/ros2/launch/tree/humble developed 1.0.4-1
+leo https://github.com/LeoRover/leo_common-ros2/tree/humble maintained 1.1.0-1
+leo-bringup https://github.com/LeoRover/leo_robot-ros2/tree/humble maintained 1.3.0-1
+leo-description https://github.com/LeoRover/leo_common-ros2/tree/humble maintained 1.1.0-1
+leo-desktop https://github.com/LeoRover/leo_desktop-ros2/tree/humble maintained 1.1.0-1
+leo-fw https://github.com/LeoRover/leo_robot-ros2/tree/humble maintained 1.3.0-1
+leo-msgs https://github.com/LeoRover/leo_common-ros2/tree/humble maintained 1.1.0-1
+leo-robot https://github.com/LeoRover/leo_robot-ros2/tree/humble maintained 1.3.0-1
+leo-teleop https://github.com/LeoRover/leo_common-ros2/tree/humble maintained 1.1.0-1
+leo-viz https://github.com/LeoRover/leo_desktop-ros2/tree/humble maintained 1.1.0-1
+lgsvl-msgs https://github.com/lgsvl/lgsvl_msgs/tree/foxy-devel unknown 0.0.4-3
+libcurl-vendor https://github.com/ros/resource_retriever/tree/humble maintained 3.1.1-1
+libg2o https://github.com/ros2-gbp/libg2o-release maintained 2020.5.29-4
+libmavconn https://github.com/mavlink/mavros/tree/ros2 developed 2.4.0-1
+libnabo https://github.com/ethz-asl/libnabo/tree/master maintained 1.0.7-3
+libphidget22 https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+libpointmatcher https://github.com/ethz-asl/libpointmatcher/tree/master maintained 1.3.1-3
+librealsense2 https://github.com/IntelRealSense/librealsense/tree/master developed 2.51.1-2
+libstatistics-collector https://github.com/ros-tooling/libstatistics_collector/tree/humble developed 1.3.0-1
+libyaml-vendor https://github.com/ros2/libyaml_vendor/tree/humble maintained 1.2.2-2
+lifecycle https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+lifecycle-msgs https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+lifecycle-py https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+logging-demo https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+lsc-ros2-driver https://github.com/AutonicsLiDAR/lsc_ros2_driver/tree/main maintained 1.0.0-2
+lusb https://bitbucket.org/dataspeedinc/lusb.git developed 2.0.1-1
+magic-enum https://github.com/Neargye/magic_enum/tree/master maintained 0.8.2-1
+map-msgs https://github.com/ros-planning/navigation_msgs/tree/humble maintained 2.1.0-3
+mapviz https://github.com/swri-robotics/mapviz/tree/ros2-devel disabled
+mapviz-interfaces https://github.com/swri-robotics/mapviz/tree/ros2-devel developed 2.2.0-1
+mapviz-plugins https://github.com/swri-robotics/mapviz/tree/ros2-devel disabled
+marti-can-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-common-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-dbw-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-introspection-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-nav-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-perception-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-sensor-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-status-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marti-visualization-msgs https://github.com/swri-robotics/marti_messages/tree/dashing-devel developed 1.4.0-2
+marvelmind-ros2 https://github.com/MarvelmindRobotics/marvelmind_ros2_upstream/tree/main unknown 1.0.3-5
+marvelmind-ros2-msgs https://github.com/MarvelmindRobotics/marvelmind_ros2_msgs_release.git unknown 1.0.2-1
+mavlink https://github.com/ros2-gbp/mavlink-gbp-release/tree/release/humble/mavlink developed 2022.12.30-1
+mavros https://github.com/mavlink/mavros/tree/ros2 developed 2.4.0-1
+mavros-extras https://github.com/mavlink/mavros/tree/ros2 developed 2.4.0-1
+mavros-msgs https://github.com/mavlink/mavros/tree/ros2 developed 2.4.0-1
+mcap-vendor https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+menge-vendor https://github.com/open-rmf/menge_vendor/tree/rolling developed 1.0.0-4
+message-filters https://github.com/ros2/message_filters/tree/humble maintained 4.3.2-1
+micro-ros-diagnostic-bridge https://github.com/micro-ROS/micro_ros_diagnostics/tree/master developed 0.3.0-4
+micro-ros-diagnostic-msgs https://github.com/micro-ROS/micro_ros_diagnostics/tree/master developed 0.3.0-4
+micro-ros-msgs https://github.com/micro-ROS/micro_ros_msgs/tree/main maintained 1.0.0-3
+microstrain-inertial-driver https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2 developed 3.0.1-1
+microstrain-inertial-examples https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2 developed 3.0.1-1
+microstrain-inertial-msgs https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2 developed 3.0.1-1
+microstrain-inertial-rqt https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2 developed 3.0.1-1
+mimick-vendor https://github.com/ros2/mimick_vendor/tree/humble maintained 0.2.8-2
+mod https://github.com/OrebroUniversity/mod/tree/master developed 1.1.0-1
+mouse-teleop https://github.com/ros-teleop/teleop_tools/tree/foxy-devel maintained 1.3.0-1
+moveit https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-chomp-optimizer-adapter https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-common https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-configs-utils https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-core https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-hybrid-planning https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-kinematics https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-msgs https://github.com/ros-planning/moveit_msgs/tree/ros2 developed 2.2.1-1
+moveit-planners https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-planners-chomp https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-planners-ompl https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-plugins https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-resources https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-fanuc-description https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-fanuc-moveit-config https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-panda-description https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-panda-moveit-config https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-pr2-description https://github.com/ros-planning/moveit_resources/tree/ros2 developed 2.0.6-1
+moveit-resources-prbt-ikfast-manipulator-plugin https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-resources-prbt-moveit-config https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-resources-prbt-pg70-support https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-resources-prbt-support https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-benchmarks https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-control-interface https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-move-group https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-occupancy-map-monitor https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-perception https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-planning https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-planning-interface https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-robot-interaction https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-visualization https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-ros-warehouse https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-runtime https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-servo https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-app-plugins https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-assistant https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-controllers https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-core-plugins https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-framework https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-setup-srdf-plugins https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-simple-controller-manager https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+moveit-visual-tools https://github.com/ros-planning/moveit_visual_tools/tree/ros2 maintained 4.1.0-1
+mrpt-msgs https://github.com/mrpt-ros-pkg/mrpt_msgs/tree/master maintained 0.4.4-1
+mrpt2 https://github.com/MRPT/mrpt/tree/develop developed 2.6.0-1
+mrt-cmake-modules https://github.com/KIT-MRT/mrt_cmake_modules/tree/master maintained 1.0.9-3
+multires-image https://github.com/swri-robotics/mapviz/tree/ros2-devel disabled
+mvsim https://github.com/MRPT/mvsim/tree/develop developed 0.5.1-2
+nao-button-sim https://github.com/ijnek/nao_button_sim/tree/rolling developed 0.1.1-4
+nao-command-msgs https://github.com/ijnek/nao_interfaces/tree/rolling developed 0.0.4-3
+nao-lola https://github.com/ros-sports/nao_lola/tree/humble developed 0.1.0-1
+nao-sensor-msgs https://github.com/ijnek/nao_interfaces/tree/rolling developed 0.0.4-3
+nav-2d-msgs https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav-2d-utils https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+nav2-amcl https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-behavior-tree https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-behaviors https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-bringup https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-bt-navigator https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-collision-monitor https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-common https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-constrained-smoother https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-controller https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-core https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-costmap-2d https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-dwb-controller https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-lifecycle-manager https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-map-server https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-msgs https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-navfn-planner https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-planner https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-regulated-pure-pursuit-controller https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-rotation-shim-controller https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-rviz-plugins https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-simple-commander https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-smac-planner https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-smoother https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-system-tests https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-theta-star-planner https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-util https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-velocity-smoother https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-voxel-grid https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+nav2-waypoint-follower https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+navigation2 https://github.com/ros-planning/navigation2/tree/humble developed 1.1.6-1
+neo-simulation2 https://github.com/neobotix/neo_simulation2/tree/main maintained 1.0.0-3
+nerian-stereo https://github.com/nerian-vision/nerian_stereo_ros2/tree/master developed 1.2.0-1
+nlohmann-json-schema-validator-vendor https://github.com/open-rmf/nlohmann_json_schema_validator_vendor/tree/humble developed 0.2.4-1
+nmea-hardware-interface https://github.com/OUXT-Polaris/nmea_hardware_interface/tree/master developed 0.0.1-3
+nmea-msgs https://github.com/ros-drivers/nmea_msgs/tree/ros2 maintained 2.0.0-4
+nodl-python https://github.com/ubuntu-robotics/nodl/tree/master developed 0.3.1-3
+nodl-to-policy https://github.com/osrf/nodl_to_policy/tree/master maintained 1.0.0-3
+novatel-gps-driver https://github.com/swri-robotics/novatel_gps_driver/tree/dashing-devel disabled
+novatel-gps-msgs https://github.com/swri-robotics/novatel_gps_driver/tree/dashing-devel developed 4.1.1-2
+ntpd-driver https://github.com/vooon/ntpd_driver/tree/ros2 maintained 2.2.0-1
+ntrip-client https://github.com/LORD-MicroStrain/ntrip_client/tree/ros2 developed 1.2.0-1
+object-recognition-msgs https://github.com/wg-perception/object_recognition_msgs/tree/ros2 maintained 2.0.0-3
+octomap https://github.com/octomap/octomap/tree/devel maintained 1.9.8-1
+octomap-mapping https://github.com/OctoMap/octomap_mapping/tree/ros2 maintained 2.0.0-3
+octomap-msgs https://github.com/octomap/octomap_msgs/tree/ros2 maintained 2.0.0-3
+octomap-ros https://github.com/OctoMap/octomap_ros/tree/ros2 maintained 0.4.3-1
+octomap-rviz-plugins https://github.com/OctoMap/octomap_rviz_plugins/tree/ros2 maintained 2.0.0-3
+octomap-server https://github.com/OctoMap/octomap_mapping/tree/ros2 maintained 2.0.0-3
+octovis https://github.com/octomap/octomap/tree/devel maintained 1.9.8-1
+ompl https://github.com/ros2-gbp/ompl-release.git unknown 1.6.0-1
+open3d-conversions https://github.com/ros-perception/perception_open3d/tree/humble developed 0.2.1-1
+orocos-kdl-vendor https://github.com/ros2/orocos_kdl_vendor/tree/humble developed 0.2.5-1
+osqp-vendor https://github.com/tier4/osqp_vendor/tree/main maintained 0.2.0-1
+osrf-pycommon https://github.com/osrf/osrf_pycommon/tree/master maintained 2.0.2-2
+osrf-testing-tools-cpp https://github.com/osrf/osrf_testing_tools_cpp/tree/master maintained 1.5.2-1
+ouster-msgs https://github.com/SteveMacenski/ros2_ouster_drivers/tree/foxy-devel maintained 0.4.2-1
+ouxt-common https://github.com/OUXT-Polaris/ouxt_common/tree/master developed 0.0.8-3
+ouxt-lint-common https://github.com/OUXT-Polaris/ouxt_common/tree/master developed 0.0.8-3
+pal-gazebo-plugins https://github.com/pal-robotics/pal_gazebo_plugins/tree/humble-devel developed 4.0.3-1
+pal-gazebo-worlds https://github.com/pal-robotics/pal_gazebo_worlds/tree/humble-devel maintained 3.0.3-1
+pal-gripper https://github.com/pal-robotics/pal_gripper/tree/humble-devel developed 3.0.2-1
+pal-gripper-controller-configuration https://github.com/pal-robotics/pal_gripper/tree/humble-devel developed 3.0.2-1
+pal-gripper-description https://github.com/pal-robotics/pal_gripper/tree/humble-devel developed 3.0.2-1
+pal-statistics https://github.com/pal-robotics/pal_statistics/tree/humble-devel maintained 2.1.3-1
+pal-statistics-msgs https://github.com/pal-robotics/pal_statistics/tree/humble-devel maintained 2.1.3-1
+parameter-traits https://github.com/PickNikRobotics/generate_parameter_library/tree/main developed 0.3.1-1
+pcl-conversions https://github.com/ros-perception/perception_pcl/tree/ros2 maintained 2.4.0-4
+pcl-msgs https://github.com/ros-perception/pcl_msgs/tree/ros2 maintained 1.0.0-7
+pcl-ros https://github.com/ros-perception/perception_pcl/tree/ros2 maintained 2.4.0-4
+pendulum-control https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+pendulum-msgs https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+perception https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+perception-pcl https://github.com/ros-perception/perception_pcl/tree/ros2 maintained 2.4.0-4
+performance-test https://gitlab.com/ApexAI/performance_test.git maintained 1.2.1-1
+performance-test-fixture https://github.com/ros2/performance_test_fixture/tree/main maintained 0.0.9-1
+phidgets-accelerometer https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-analog-inputs https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-api https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-digital-inputs https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-digital-outputs https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-drivers https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-gyroscope https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-high-speed-encoder https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-ik https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-magnetometer https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-motors https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-msgs https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-spatial https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+phidgets-temperature https://github.com/ros-drivers/phidgets_drivers/tree/rolling maintained 2.3.0-2
+pick-ik https://github.com/PickNikRobotics/pick_ik/tree/main developed 1.0.0-1
+picknik-ament-copyright https://github.com/ros2-gbp/picknik_ament_copyright-release.git unknown 0.0.2-3
+pilz-industrial-motion-planner https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+pilz-industrial-motion-planner-testutils https://github.com/ros-planning/moveit2/tree/main developed 2.5.4-1
+pinocchio https://github.com/stack-of-tasks/pinocchio/tree/devel developed 2.6.17-1
+plansys2-bringup https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-bt-actions https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-core https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-domain-expert https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-executor https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-lifecycle-manager https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-msgs https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-pddl-parser https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-planner https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-popf-plan-solver https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-problem-expert https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-terminal https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plansys2-tools https://github.com/IntelligentRoboticsLabs/ros2_planning_system/tree/humble-devel developed 2.0.9-1
+plotjuggler https://github.com/facontidavide/PlotJuggler/tree/main developed 3.5.1-1
+plotjuggler-msgs https://github.com/facontidavide/plotjuggler_msgs/tree/ros2 developed 0.2.3-3
+plotjuggler-ros https://github.com/PlotJuggler/plotjuggler-ros-plugins/tree/rolling developed 1.7.3-1
+pluginlib https://github.com/ros/pluginlib/tree/humble maintained 5.1.0-3
+pmb2-2dnav https://github.com/pal-robotics/pmb2_navigation/tree/humble-devel developed 4.0.0-1
+pmb2-bringup https://github.com/pal-robotics/pmb2_robot/tree/humble-devel maintained 5.0.0-1
+pmb2-controller-configuration https://github.com/pal-robotics/pmb2_robot/tree/humble-devel maintained 5.0.0-1
+pmb2-description https://github.com/pal-robotics/pmb2_robot/tree/humble-devel maintained 5.0.0-1
+pmb2-gazebo https://github.com/pal-robotics/pmb2_simulation/tree/humble-devel developed 4.0.2-1
+pmb2-maps https://github.com/pal-robotics/pmb2_navigation/tree/humble-devel developed 4.0.0-1
+pmb2-navigation https://github.com/pal-robotics/pmb2_navigation/tree/humble-devel developed 4.0.0-1
+pmb2-robot https://github.com/pal-robotics/pmb2_robot/tree/humble-devel maintained 5.0.0-1
+pmb2-simulation https://github.com/pal-robotics/pmb2_simulation/tree/humble-devel developed 4.0.2-1
+point-cloud-msg-wrapper https://gitlab.com/ApexAI/point_cloud_msg_wrapper developed 1.0.7-3
+pointcloud-to-laserscan https://github.com/ros-perception/pointcloud_to_laserscan/tree/humble maintained 2.0.1-3
+popf https://github.com/fmrico/popf/tree/humble-devel developed 0.0.14-1
+pose-cov-ops https://github.com/mrpt-ros-pkg/pose_cov_ops/tree/master maintained 0.3.8-1
+position-controllers https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+py-trees https://github.com/splintered-reality/py_trees/tree/release/2.2.x maintained 2.2.3-1
+py-trees-js https://github.com/splintered-reality/py_trees_js/tree/release/0.6.x maintained 0.6.3-1
+py-trees-ros https://github.com/splintered-reality/py_trees_ros/tree/release/2.2.x developed 2.2.2-3
+py-trees-ros-interfaces https://github.com/splintered-reality/py_trees_ros_interfaces/tree/release/2.1.x maintained 2.1.0-1
+pybind11-json-vendor https://github.com/open-rmf/pybind11_json_vendor/tree/main developed 0.2.2-1
+pybind11-vendor https://github.com/ros2/pybind11_vendor/tree/humble maintained 2.4.2-1
+python-cmake-module https://github.com/ros2/python_cmake_module/tree/humble developed 0.10.0-2
+python-orocos-kdl-vendor https://github.com/ros2/orocos_kdl_vendor/tree/humble developed 0.2.5-1
+python-qt-binding https://github.com/ros-visualization/python_qt_binding/tree/humble maintained 1.1.1-3
+qpoases-vendor https://github.com/Autoware-AI/qpoases_vendor/tree/ros2 maintained 3.2.3-3
+qt-dotgraph https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+qt-gui https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+qt-gui-app https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+qt-gui-core https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+qt-gui-cpp https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+qt-gui-py-common https://github.com/ros-visualization/qt_gui_core/tree/humble maintained 2.2.2-1
+quality-of-service-demo-cpp https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+quality-of-service-demo-py https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+quaternion-operation https://github.com/OUXT-Polaris/quaternion_operation/tree/ros2 maintained 0.0.11-1
+r2r-spl-7 https://github.com/ros-sports/r2r_spl/tree/humble developed 2.0.1-1
+radar-msgs https://github.com/ros2-gbp/radar_msgs-release.git maintained 0.2.1-3
+random-numbers https://github.com/ros-planning/random_numbers/tree/ros2 maintained 2.0.1-3
+raspimouse https://github.com/rt-net/raspimouse2/tree/humble-devel maintained 1.1.1-7
+raspimouse-description https://github.com/rt-net/raspimouse_description/tree/humble-devel maintained 1.0.1-1
+raspimouse-msgs https://github.com/rt-net/raspimouse2/tree/humble-devel maintained 1.1.1-7
+rc-common-msgs https://github.com/roboception/rc_common_msgs_ros2/tree/master developed 0.5.3-4
+rc-dynamics-api https://github.com/roboception/rc_dynamics_api/tree/master developed 0.10.3-3
+rc-genicam-api https://github.com/roboception/rc_genicam_api/tree/master developed 2.5.12-3
+rc-genicam-driver https://github.com/roboception/rc_genicam_driver_ros2/tree/master developed 0.2.1-3
+rc-reason-clients https://github.com/roboception/rc_reason_clients_ros2/tree/master developed 0.2.1-4
+rc-reason-msgs https://github.com/roboception/rc_reason_clients_ros2/tree/master developed 0.2.1-4
+rcdiscover https://github.com/roboception/rcdiscover/tree/master developed 1.1.4-3
+rcgcd-spl-14 https://github.com/ros-sports/gc_spl/tree/humble developed 2.0.0-1
+rcgcd-spl-14-conversion https://github.com/ros-sports/gc_spl/tree/humble developed 2.0.0-1
+rcgcrd-spl-4 https://github.com/ros-sports/gc_spl/tree/humble developed 2.0.0-1
+rcgcrd-spl-4-conversion https://github.com/ros-sports/gc_spl/tree/humble developed 2.0.0-1
+rcl https://github.com/ros2/rcl/tree/humble maintained 5.3.2-1
+rcl-action https://github.com/ros2/rcl/tree/humble maintained 5.3.2-1
+rcl-interfaces https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+rcl-lifecycle https://github.com/ros2/rcl/tree/humble maintained 5.3.2-1
+rcl-logging-interface https://github.com/ros2/rcl_logging/tree/humble maintained 2.3.1-1
+rcl-logging-noop https://github.com/ros2/rcl_logging/tree/humble maintained 2.3.1-1
+rcl-logging-spdlog https://github.com/ros2/rcl_logging/tree/humble maintained 2.3.1-1
+rcl-yaml-param-parser https://github.com/ros2/rcl/tree/humble maintained 5.3.2-1
+rclc https://github.com/ros2/rclc/tree/humble developed 4.0.1-1
+rclc-examples https://github.com/ros2/rclc/tree/humble developed 4.0.1-1
+rclc-lifecycle https://github.com/ros2/rclc/tree/humble developed 4.0.1-1
+rclc-parameter https://github.com/ros2/rclc/tree/humble developed 4.0.1-1
+rclcpp https://github.com/ros2/rclcpp/tree/humble maintained 16.0.3-1
+rclcpp-action https://github.com/ros2/rclcpp/tree/humble maintained 16.0.3-1
+rclcpp-cascade-lifecycle https://github.com/fmrico/cascade_lifecycle/tree/humble-devel developed 1.0.2-2
+rclcpp-components https://github.com/ros2/rclcpp/tree/humble maintained 16.0.3-1
+rclcpp-lifecycle https://github.com/ros2/rclcpp/tree/humble maintained 16.0.3-1
+rclpy https://github.com/ros2/rclpy/tree/humble maintained 3.3.7-1
+rclpy-message-converter https://github.com/DFKI-NI/rospy_message_converter/tree/humble maintained 2.0.1-1
+rclpy-message-converter-msgs https://github.com/DFKI-NI/rospy_message_converter/tree/humble maintained 2.0.1-1
+rcpputils https://github.com/ros2/rcpputils/tree/humble developed 2.4.0-2
+rcss3d-agent https://github.com/ros-sports/rcss3d_agent/tree/humble developed 0.2.1-1
+rcss3d-agent-basic https://github.com/ros-sports/rcss3d_agent/tree/humble developed 0.2.1-1
+rcss3d-agent-msgs https://github.com/ros-sports/rcss3d_agent/tree/humble developed 0.2.1-1
+rcutils https://github.com/ros2/rcutils/tree/humble maintained 5.1.2-1
+realsense2-camera https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta developed 4.51.1-1
+realsense2-camera-msgs https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta developed 4.51.1-1
+realsense2-description https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta developed 4.51.1-1
+realtime-tools https://github.com/ros-controls/realtime_tools/tree/master maintained 2.5.0-1
+resource-retriever https://github.com/ros/resource_retriever/tree/humble maintained 3.1.1-1
+rmf-api-msgs https://github.com/open-rmf/rmf_api_msgs/tree/humble developed 0.0.1-1
+rmf-battery https://github.com/open-rmf/rmf_battery/tree/main developed 0.1.3-2
+rmf-building-map-msgs https://github.com/open-rmf/rmf_building_map_msgs/tree/rolling developed 1.2.0-6
+rmf-building-map-tools https://github.com/open-rmf/rmf_traffic_editor/tree/main developed 1.6.0-1
+rmf-building-sim-common https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-building-sim-gz-classic-plugins https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-building-sim-gz-plugins https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-charger-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-cmake-uncrustify https://github.com/open-rmf/rmf_cmake_uncrustify/tree/rolling developed 1.2.0-4
+rmf-dispenser-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-door-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-fleet-adapter https://github.com/open-rmf/rmf_ros2/tree/humble developed 2.1.2-1
+rmf-fleet-adapter-python https://github.com/open-rmf/rmf_ros2/tree/humble developed 2.1.2-1
+rmf-fleet-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-ingestor-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-lift-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-obstacle-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-robot-sim-common https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-robot-sim-gz-classic-plugins https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-robot-sim-gz-plugins https://github.com/open-rmf/rmf_simulation/tree/main developed 2.0.0-1
+rmf-scheduler-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-site-map-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-task https://github.com/open-rmf/rmf_task/tree/humble developed 2.1.1-1
+rmf-task-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-task-ros2 https://github.com/open-rmf/rmf_ros2/tree/humble developed 2.1.2-1
+rmf-task-sequence https://github.com/open-rmf/rmf_task/tree/humble developed 2.1.1-1
+rmf-traffic https://github.com/open-rmf/rmf_traffic/tree/main developed 3.0.0-1
+rmf-traffic-editor https://github.com/open-rmf/rmf_traffic_editor/tree/main developed 1.6.0-1
+rmf-traffic-editor-assets https://github.com/open-rmf/rmf_traffic_editor/tree/main developed 1.6.0-1
+rmf-traffic-editor-test-maps https://github.com/open-rmf/rmf_traffic_editor/tree/main developed 1.6.0-1
+rmf-traffic-examples https://github.com/open-rmf/rmf_traffic/tree/main developed 3.0.0-1
+rmf-traffic-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmf-traffic-ros2 https://github.com/open-rmf/rmf_ros2/tree/humble developed 2.1.2-1
+rmf-utils https://github.com/open-rmf/rmf_utils/tree/main developed 1.4.0-2
+rmf-visualization https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-building-systems https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-fleet-states https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-floorplans https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-msgs https://github.com/open-rmf/rmf_visualization_msgs/tree/main developed 1.2.0-4
+rmf-visualization-navgraphs https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-obstacles https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-rviz2-plugins https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-visualization-schedule https://github.com/open-rmf/rmf_visualization/tree/main developed 2.0.0-1
+rmf-websocket https://github.com/open-rmf/rmf_ros2/tree/humble developed 2.1.2-1
+rmf-workcell-msgs https://github.com/open-rmf/rmf_internal_msgs/tree/main developed 3.0.2-1
+rmw https://github.com/ros2/rmw/tree/humble maintained 6.1.1-1
+rmw-connextdds https://github.com/ros2/rmw_connextdds/tree/humble developed 0.11.1-2
+rmw-connextdds-common https://github.com/ros2/rmw_connextdds/tree/humble developed 0.11.1-2
+rmw-cyclonedds-cpp https://github.com/ros2/rmw_cyclonedds/tree/humble developed 1.3.4-1
+rmw-dds-common https://github.com/ros2/rmw_dds_common/tree/humble maintained 1.6.0-2
+rmw-fastrtps-cpp https://github.com/ros2/rmw_fastrtps/tree/humble developed 6.2.2-1
+rmw-fastrtps-dynamic-cpp https://github.com/ros2/rmw_fastrtps/tree/humble developed 6.2.2-1
+rmw-fastrtps-shared-cpp https://github.com/ros2/rmw_fastrtps/tree/humble developed 6.2.2-1
+rmw-gurumdds-cpp https://github.com/ros2/rmw_gurumdds/tree/humble developed 3.3.1-1
+rmw-implementation https://github.com/ros2/rmw_implementation/tree/humble developed 2.8.2-1
+rmw-implementation-cmake https://github.com/ros2/rmw/tree/humble maintained 6.1.1-1
+robot-calibration https://github.com/mikeferguson/robot_calibration/tree/ros2 developed 0.8.0-1
+robot-calibration-msgs https://github.com/mikeferguson/robot_calibration/tree/ros2 developed 0.8.0-1
+robot-controllers https://github.com/fetchrobotics/robot_controllers/tree/ros2 maintained 0.9.3-1
+robot-controllers-interface https://github.com/fetchrobotics/robot_controllers/tree/ros2 maintained 0.9.3-1
+robot-controllers-msgs https://github.com/fetchrobotics/robot_controllers/tree/ros2 maintained 0.9.3-1
+robot-localization https://github.com/cra-ros-pkg/robot_localization/tree/ros2 unknown 3.3.1-2
+robot-state-publisher https://github.com/ros/robot_state_publisher/tree/humble maintained 3.0.2-2
+robot-upstart https://github.com/clearpathrobotics/robot_upstart/tree/foxy-devel maintained 1.0.2-1
+robotraconteur https://github.com/robotraconteur/robotraconteur/tree/ros2-humble maintained 0.16.0-4
+ros-base https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+ros-core https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+ros-environment https://github.com/ros/ros_environment/tree/humble maintained 3.2.2-1
+ros-gz https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-gz-bridge https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-gz-image https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-gz-interfaces https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-gz-sim https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-gz-sim-demos https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign-bridge https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign-gazebo https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign-gazebo-demos https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign-image https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-ign-interfaces https://github.com/gazebosim/ros_gz/tree/humble maintained 0.244.9-1
+ros-image-to-qimage https://github.com/ros-sports/ros_image_to_qimage/tree/humble developed 0.2.1-1
+ros-industrial-cmake-boilerplate https://github.com/ros-industrial-release/ros_industrial_cmake_boilerplate-release.git unknown 0.4.0-1
+ros-testing https://github.com/ros2/ros_testing/tree/humble maintained 0.4.0-3
+ros-workspace https://github.com/ros2/ros_workspace/tree/latest maintained 1.0.2-2
+ros2-control https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+ros2-control-test-assets https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+ros2-controllers https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+ros2-controllers-test-nodes https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+ros2-ouster https://github.com/SteveMacenski/ros2_ouster_drivers/tree/foxy-devel maintained 0.4.2-1
+ros2-socketcan https://github.com/autowarefoundation/ros2_socketcan/tree/main developed 1.1.0-3
+ros2acceleration https://github.com/ros-acceleration/ros2acceleration/tree/rolling developed 0.5.1-2
+ros2action https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2bag https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+ros2cli https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2cli-common-extensions https://github.com/ros2/ros2cli_common_extensions/tree/humble maintained 0.1.1-4
+ros2cli-test-interfaces https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2component https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2controlcli https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+ros2doctor https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2interface https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2launch https://github.com/ros2/launch_ros/tree/humble maintained 0.19.4-1
+ros2launch-security https://github.com/osrf/ros2launch_security/tree/main maintained 1.0.0-3
+ros2launch-security-examples https://github.com/osrf/ros2launch_security/tree/main maintained 1.0.0-3
+ros2lifecycle https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2lifecycle-test-fixtures https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2multicast https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2node https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2nodl https://github.com/ubuntu-robotics/nodl/tree/master developed 0.3.1-3
+ros2param https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2pkg https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2run https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2service https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2test https://github.com/ros2/ros_testing/tree/humble maintained 0.4.0-3
+ros2topic https://github.com/ros2/ros2cli/tree/humble maintained 0.18.5-1
+ros2trace https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+ros2trace-analysis https://gitlab.com/ros-tracing/tracetools_analysis.git developed 3.0.0-4
+rosapi https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosapi-msgs https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosbag2 https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-compression https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-compression-zstd https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-cpp https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-interfaces https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-performance-benchmarking https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-py https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-storage https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-storage-default-plugins https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-storage-mcap https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-storage-mcap-testdata https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-test-common https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-tests https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbag2-transport https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+rosbridge-library https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosbridge-msgs https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosbridge-server https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosbridge-suite https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosbridge-test-msgs https://github.com/RobotWebTools/rosbridge_suite/tree/ros2 developed 1.3.1-1
+rosgraph-msgs https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+rosidl-adapter https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-cli https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-cmake https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-default-generators https://github.com/ros2/rosidl_defaults/tree/humble maintained 1.2.0-2
+rosidl-default-runtime https://github.com/ros2/rosidl_defaults/tree/humble maintained 1.2.0-2
+rosidl-generator-c https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-generator-cpp https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-generator-dds-idl https://github.com/ros2/rosidl_dds/tree/humble maintained 0.8.1-2
+rosidl-generator-py https://github.com/ros2/rosidl_python/tree/humble maintained 0.14.4-1
+rosidl-parser https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-runtime-c https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-runtime-cpp https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-runtime-py https://github.com/ros2/rosidl_runtime_py/tree/humble maintained 0.9.3-1
+rosidl-typesupport-c https://github.com/ros2/rosidl_typesupport/tree/humble maintained 2.0.0-2
+rosidl-typesupport-cpp https://github.com/ros2/rosidl_typesupport/tree/humble maintained 2.0.0-2
+rosidl-typesupport-fastrtps-c https://github.com/ros2/rosidl_typesupport_fastrtps/tree/humble developed 2.2.0-2
+rosidl-typesupport-fastrtps-cpp https://github.com/ros2/rosidl_typesupport_fastrtps/tree/humble developed 2.2.0-2
+rosidl-typesupport-interface https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-typesupport-introspection-c https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rosidl-typesupport-introspection-cpp https://github.com/ros2/rosidl/tree/humble maintained 3.1.4-1
+rot-conv https://github.com/AIS-Bonn/rot_conv_lib/tree/master maintained 1.0.11-2
+rplidar-ros https://github.com/allenh1/rplidar_ros/tree/ros2 developed 2.1.0-1
+rpyutils https://github.com/ros2/rpyutils/tree/humble developed 0.2.1-2
+rqt https://github.com/ros-visualization/rqt/tree/humble maintained 1.1.4-1
+rqt-action https://github.com/ros-visualization/rqt_action/tree/humble maintained 2.0.1-3
+rqt-bag https://github.com/ros-visualization/rqt_bag/tree/humble maintained 1.1.4-1
+rqt-bag-plugins https://github.com/ros-visualization/rqt_bag/tree/humble maintained 1.1.4-1
+rqt-common-plugins https://github.com/ros-visualization/rqt_common_plugins/tree/ros2 maintained 1.2.0-1
+rqt-console https://github.com/ros-visualization/rqt_console/tree/humble maintained 2.0.2-3
+rqt-controller-manager https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+rqt-graph https://github.com/ros-visualization/rqt_graph/tree/humble maintained 1.3.0-1
+rqt-gui https://github.com/ros-visualization/rqt/tree/humble maintained 1.1.4-1
+rqt-gui-cpp https://github.com/ros-visualization/rqt/tree/humble maintained 1.1.4-1
+rqt-gui-py https://github.com/ros-visualization/rqt/tree/humble maintained 1.1.4-1
+rqt-image-overlay https://github.com/ros-sports/rqt_image_overlay/tree/humble developed 0.1.3-1
+rqt-image-overlay-layer https://github.com/ros-sports/rqt_image_overlay/tree/humble developed 0.1.3-1
+rqt-image-view https://github.com/ros-visualization/rqt_image_view/tree/rolling-devel maintained 1.2.0-2
+rqt-joint-trajectory-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+rqt-moveit https://github.com/ros-visualization/rqt_moveit/tree/ros2 maintained 1.0.1-3
+rqt-msg https://github.com/ros-visualization/rqt_msg/tree/humble maintained 1.2.0-1
+rqt-plot https://github.com/ros-visualization/rqt_plot/tree/humble maintained 1.1.2-1
+rqt-publisher https://github.com/ros-visualization/rqt_publisher/tree/humble maintained 1.5.0-1
+rqt-py-common https://github.com/ros-visualization/rqt/tree/humble maintained 1.1.4-1
+rqt-py-console https://github.com/ros-visualization/rqt_py_console/tree/humble maintained 1.0.2-3
+rqt-reconfigure https://github.com/ros-visualization/rqt_reconfigure/tree/humble maintained 1.1.1-1
+rqt-robot-dashboard https://github.com/ros-visualization/rqt_robot_dashboard/tree/ROS2 maintained 0.6.1-3
+rqt-robot-monitor https://github.com/ros-visualization/rqt_robot_monitor/tree/dashing-devel maintained 1.0.5-2
+rqt-robot-steering https://github.com/ros-visualization/rqt_robot_steering/tree/dashing-devel maintained 1.0.0-4
+rqt-runtime-monitor https://github.com/ros-visualization/rqt_runtime_monitor/tree/rolling maintained 1.0.0-3
+rqt-service-caller https://github.com/ros-visualization/rqt_service_caller/tree/humble maintained 1.0.5-3
+rqt-shell https://github.com/ros-visualization/rqt_shell/tree/humble maintained 1.0.2-3
+rqt-srv https://github.com/ros-visualization/rqt_srv/tree/humble maintained 1.0.3-3
+rqt-tf-tree https://github.com/ros-visualization/rqt_tf_tree/tree/humble maintained 1.0.4-1
+rqt-topic https://github.com/ros-visualization/rqt_topic/tree/humble maintained 1.5.0-1
+rsl https://github.com/PickNikRobotics/RSL/tree/main developed 0.2.1-1
+rt-manipulators-cpp https://github.com/rt-net/rt_manipulators_cpp/tree/ros2 maintained 1.0.0-1
+rt-manipulators-examples https://github.com/rt-net/rt_manipulators_cpp/tree/ros2 maintained 1.0.0-1
+rt-usb-9axisimu-driver https://github.com/rt-net/rt_usb_9axisimu_driver/tree/humble-devel maintained 2.0.2-1
+rtabmap https://github.com/introlab/rtabmap/tree/humble-devel maintained 0.20.23-1
+rtabmap-ros https://github.com/introlab/rtabmap_ros/tree/humble-devel maintained 0.20.22-1
+rtcm-msgs https://github.com/tilk/rtcm_msgs/tree/master maintained 1.1.6-1
+rti-connext-dds-cmake-module https://github.com/ros2/rmw_connextdds/tree/humble developed 0.11.1-2
+rttest https://github.com/ros2/realtime_support/tree/humble maintained 0.13.0-2
+ruckig https://github.com/pantor/ruckig/tree/master developed 0.9.2-1
+rviz-2d-overlay-msgs https://github.com/teamspatzenhirn/rviz_2d_overlay_plugins/tree/main developed 1.2.1-1
+rviz-2d-overlay-plugins https://github.com/teamspatzenhirn/rviz_2d_overlay_plugins/tree/main developed 1.2.1-1
+rviz-assimp-vendor https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-common https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-default-plugins https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-imu-plugin https://github.com/CCNYRoboticsLab/imu_tools/tree/humble maintained 2.1.3-1
+rviz-ogre-vendor https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-rendering https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-rendering-tests https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-satellite https://github.com/nobleo/rviz_satellite/tree/ros2 maintained 4.0.0-1
+rviz-visual-testing-framework https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+rviz-visual-tools https://github.com/PickNikRobotics/rviz_visual_tools/tree/ros2 maintained 4.1.4-1
+rviz2 https://github.com/ros2/rviz/tree/humble maintained 11.2.5-1
+sdformat-test-files https://github.com/ros/sdformat_urdf/tree/ros2 maintained 1.0.1-1
+sdformat-urdf https://github.com/ros/sdformat_urdf/tree/ros2 maintained 1.0.1-1
+sdl2-vendor https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+self-test https://github.com/ros/diagnostics/tree/ros2 maintained 3.1.0-2
+sensor-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+sensor-msgs-py https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+septentrio-gnss-driver https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/ros2 maintained 1.2.3-1
+serial-driver https://github.com/ros-drivers/transport_drivers/tree/main developed 1.2.0-2
+shape-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+shared-queues-vendor https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+sick-safetyscanners-base https://github.com/SICKAG/sick_safetyscanners_base/tree/ros2 developed 1.0.2-1
+sick-safetyscanners2 https://github.com/SICKAG/sick_safetyscanners2/tree/master developed 1.0.3-1
+sick-safetyscanners2-interfaces https://github.com/SICKAG/sick_safetyscanners2_interfaces/tree/master developed 1.0.0-2
+simple-actions https://github.com/DLu/simple_actions/tree/main developed 0.2.1-1
+simple-launch https://github.com/oKermorgant/simple_launch/tree/devel maintained 1.7.0-1
+simple-term-menu-vendor https://github.com/clearpathrobotics/simple-term-menu/tree/humble developed 1.5.7-1
+simulation https://github.com/ros2/variants/tree/master maintained 0.10.0-1
+slam-toolbox https://github.com/SteveMacenski/slam_toolbox/tree/humble maintained 2.6.4-1
+slider-publisher https://github.com/oKermorgant/slider_publisher/tree/ros2 maintained 2.2.1-1
+smacc2 https://github.com/robosoft-ai/SMACC2/tree/master developed 0.4.0-2
+smacc2-msgs https://github.com/robosoft-ai/SMACC2/tree/master developed 0.4.0-2
+smclib https://github.com/ros/bond_core/tree/ros2 maintained 3.0.2-3
+snowbot-operating-system https://github.com/PickNikRobotics/snowbot_operating_system/tree/ros2 maintained 0.1.2-3
+soccer-interfaces https://github.com/ros-sports/soccer_interfaces/tree/humble developed 0.1.0-1
+soccer-marker-generation https://github.com/ijnek/soccer_visualization/tree/rolling developed 0.0.2-3
+soccer-object-msgs https://github.com/ijnek/soccer_object_msgs/tree/rolling developed 1.0.1-4
+soccer-vision-2d-msgs https://github.com/ros-sports/soccer_interfaces/tree/humble developed 0.1.0-1
+soccer-vision-3d-msgs https://github.com/ros-sports/soccer_interfaces/tree/humble developed 0.1.0-1
+soccer-vision-attribute-msgs https://github.com/ros-sports/soccer_interfaces/tree/humble developed 0.1.0-1
+sol-vendor https://github.com/OUXT-Polaris/sol_vendor/tree/main developed 0.0.3-3
+sophus https://github.com/stonier/sophus/tree/release/1.3.x maintained 1.3.1-1
+spacenav https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+spdlog-vendor https://github.com/ros2/spdlog_vendor/tree/humble maintained 1.3.1-1
+splsm-7 https://github.com/ros-sports/r2r_spl/tree/humble developed 2.0.1-1
+splsm-7-conversion https://github.com/ros-sports/r2r_spl/tree/humble developed 2.0.1-1
+sqlite3-vendor https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+srdfdom https://github.com/ros-planning/srdfdom/tree/ros2 maintained 2.0.4-1
+sros2 https://github.com/ros2/sros2/tree/humble developed 0.10.4-2
+sros2-cmake https://github.com/ros2/sros2/tree/humble developed 0.10.4-2
+statistics-msgs https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+std-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+std-srvs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+stereo-image-proc https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+stereo-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+stubborn-buddies https://github.com/open-rmf/stubborn_buddies/tree/main developed 1.0.0-5
+stubborn-buddies-msgs https://github.com/open-rmf/stubborn_buddies/tree/main developed 1.0.0-5
+swri-console https://github.com/swri-robotics/swri_console/tree/ros2-devel developed 2.0.3-2
+swri-console-util https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+swri-dbw-interface https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-geometry-util https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+swri-image-util https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+swri-math-util https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-opencv-util https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-prefix-tools https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-roscpp https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+swri-route-util https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+swri-serial-util https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-system-util https://github.com/swri-robotics/marti_common/tree/ros2-devel developed 3.5.1-2
+swri-transform-util https://github.com/swri-robotics/marti_common/tree/ros2-devel disabled
+system-fingerprint https://github.com/MetroRobots/ros_system_fingerprint/tree/ros2 developed 0.7.0-1
+system-modes https://github.com/micro-ROS/system_modes/tree/master developed 0.9.0-6
+system-modes-examples https://github.com/micro-ROS/system_modes/tree/master developed 0.9.0-6
+system-modes-msgs https://github.com/micro-ROS/system_modes/tree/master developed 0.9.0-6
+tango-icons-vendor https://github.com/ros-visualization/tango_icons_vendor/tree/humble maintained 0.1.1-3
+tcb-span https://github.com/PickNikRobotics/cpp_polyfills/tree/main maintained 1.0.2-2
+teleop-tools https://github.com/ros-teleop/teleop_tools/tree/foxy-devel maintained 1.3.0-1
+teleop-tools-msgs https://github.com/ros-teleop/teleop_tools/tree/foxy-devel maintained 1.3.0-1
+teleop-twist-joy https://github.com/ros2/teleop_twist_joy/tree/rolling maintained 2.4.3-4
+teleop-twist-keyboard https://github.com/ros2/teleop_twist_keyboard/tree/dashing maintained 2.3.2-4
+tensorrt-cmake-module https://github.com/tier4/tensorrt_cmake_module/tree/main maintained 0.0.3-1
+test-apex-test-tools https://gitlab.com/ApexAI/apex_test_tools.git developed 0.0.2-6
+test-interface-files https://github.com/ros2/test_interface_files/tree/humble maintained 0.9.1-2
+test-msgs https://github.com/ros2/rcl_interfaces/tree/humble maintained 1.2.1-1
+tf-transformations https://github.com/DLu/tf_transformations/tree/main maintained 1.0.1-3
+tf2 https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-bullet https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-eigen https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-eigen-kdl https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-geometry-msgs https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-kdl https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-msgs https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-py https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-ros https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-ros-py https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-sensor-msgs https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+tf2-tools https://github.com/ros2/geometry2/tree/humble maintained 0.25.2-1
+theora-image-transport https://github.com/ros-perception/image_transport_plugins/tree/humble maintained 2.5.0-2
+tiago-2dnav https://github.com/pal-robotics/tiago_navigation/tree/humble-devel developed 4.0.2-1
+tiago-bringup https://github.com/pal-robotics/tiago_robot/tree/humble-devel developed 4.0.2-1
+tiago-controller-configuration https://github.com/pal-robotics/tiago_robot/tree/humble-devel developed 4.0.2-1
+tiago-description https://github.com/pal-robotics/tiago_robot/tree/humble-devel developed 4.0.2-1
+tiago-gazebo https://github.com/pal-robotics/tiago_simulation/tree/humble-devel developed 4.0.1-1
+tiago-moveit-config https://github.com/pal-robotics/tiago_moveit_config/tree/humble-devel developed 3.0.1-1
+tiago-navigation https://github.com/pal-robotics/tiago_navigation/tree/humble-devel developed 4.0.2-1
+tiago-robot https://github.com/pal-robotics/tiago_robot/tree/humble-devel developed 4.0.2-1
+tiago-simulation https://github.com/pal-robotics/tiago_simulation/tree/humble-devel developed 4.0.1-1
+tile-map https://github.com/swri-robotics/mapviz/tree/ros2-devel disabled
+tinyxml-vendor https://github.com/ros2/tinyxml_vendor/tree/humble maintained 0.8.3-2
+tinyxml2-vendor https://github.com/ros2/tinyxml2_vendor/tree/humble maintained 0.7.5-2
+tl-expected https://github.com/PickNikRobotics/cpp_polyfills/tree/main maintained 1.0.2-2
+tlsf https://github.com/ros2/tlsf/tree/humble maintained 0.7.0-2
+tlsf-cpp https://github.com/ros2/realtime_support/tree/humble maintained 0.13.0-2
+topic-monitor https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+topic-statistics-demo https://github.com/ros2/demos/tree/humble developed 0.20.3-1
+topic-tools https://github.com/ros-tooling/topic_tools/tree/main developed 1.0.0-2
+topic-tools-interfaces https://github.com/ros-tooling/topic_tools/tree/main developed 1.0.0-2
+tracetools https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+tracetools-acceleration https://github.com/ros-acceleration/tracetools_acceleration/tree/rolling developed 0.4.1-2
+tracetools-analysis https://gitlab.com/ros-tracing/tracetools_analysis.git developed 3.0.0-4
+tracetools-image-pipeline https://github.com/ros-perception/image_pipeline/tree/humble maintained 3.0.0-1
+tracetools-launch https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+tracetools-read https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+tracetools-test https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+tracetools-trace https://github.com/ros2/ros2_tracing/tree/humble developed 4.1.1-1
+trajectory-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+transmission-interface https://github.com/ros-controls/ros2_control/tree/humble developed 2.23.0-1
+tricycle-controller https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+turbojpeg-compressed-image-transport https://github.com/wep21/turbojpeg_compressed_image_transport/tree/humble maintained 0.1.3-1
+turtle-tf2-cpp https://github.com/ros/geometry_tutorials/tree/ros2 developed 0.3.6-1
+turtle-tf2-py https://github.com/ros/geometry_tutorials/tree/ros2 developed 0.3.6-1
+turtlebot3 https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-bringup https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-cartographer https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-description https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-example https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-fake-node https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2 maintained 2.2.5-3
+turtlebot3-gazebo https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2 maintained 2.2.5-3
+turtlebot3-msgs https://github.com/ROBOTIS-GIT/turtlebot3_msgs/tree/rolling-devel developed 2.2.3-1
+turtlebot3-navigation2 https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-node https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot3-simulations https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2 maintained 2.2.5-3
+turtlebot3-teleop https://github.com/ROBOTIS-GIT/turtlebot3/tree/humble-devel maintained 2.1.5-1
+turtlebot4-base https://github.com/turtlebot/turtlebot4_robot/tree/humble developed 1.0.0-1
+turtlebot4-bringup https://github.com/turtlebot/turtlebot4_robot/tree/humble developed 1.0.0-1
+turtlebot4-description https://github.com/turtlebot/turtlebot4/tree/humble developed 1.0.0-1
+turtlebot4-desktop https://github.com/turtlebot/turtlebot4_desktop/tree/humble developed 1.0.0-1
+turtlebot4-diagnostics https://github.com/turtlebot/turtlebot4_robot/tree/humble developed 1.0.0-1
+turtlebot4-msgs https://github.com/turtlebot/turtlebot4/tree/humble developed 1.0.0-1
+turtlebot4-navigation https://github.com/turtlebot/turtlebot4/tree/humble developed 1.0.0-1
+turtlebot4-node https://github.com/turtlebot/turtlebot4/tree/humble developed 1.0.0-1
+turtlebot4-robot https://github.com/turtlebot/turtlebot4_robot/tree/humble developed 1.0.0-1
+turtlebot4-tests https://github.com/turtlebot/turtlebot4_robot/tree/humble developed 1.0.0-1
+turtlebot4-viz https://github.com/turtlebot/turtlebot4_desktop/tree/humble developed 1.0.0-1
+turtlesim https://github.com/ros/ros_tutorials/tree/humble maintained 1.4.2-1
+tvm-vendor https://github.com/autowarefoundation/tvm_vendor/tree/main maintained 0.9.1-1
+twist-mux https://github.com/ros-teleop/twist_mux/tree/foxy-devel maintained 4.1.0-3
+twist-stamper https://github.com/joshnewans/twist_stamper/tree/main maintained 0.0.3-1
+ublox https://github.com/KumarRobotics/ublox/tree/ros2 maintained 2.3.0-2
+ublox-dgnss https://github.com/aussierobots/ublox_dgnss/tree/main maintained 0.3.5-4
+ublox-dgnss-node https://github.com/aussierobots/ublox_dgnss/tree/main maintained 0.3.5-4
+ublox-gps https://github.com/KumarRobotics/ublox/tree/ros2 maintained 2.3.0-2
+ublox-msgs https://github.com/KumarRobotics/ublox/tree/ros2 maintained 2.3.0-2
+ublox-serialization https://github.com/KumarRobotics/ublox/tree/ros2 maintained 2.3.0-2
+ublox-ubx-interfaces https://github.com/aussierobots/ublox_dgnss/tree/main maintained 0.3.5-4
+ublox-ubx-msgs https://github.com/aussierobots/ublox_dgnss/tree/main maintained 0.3.5-4
+udp-driver https://github.com/ros-drivers/transport_drivers/tree/main developed 1.2.0-2
+udp-msgs https://github.com/flynneva/udp_msgs/tree/main maintained 0.0.3-5
+uncrustify-vendor https://github.com/ament/uncrustify_vendor/tree/humble maintained 2.0.2-2
+unique-identifier-msgs https://github.com/ros2/unique_identifier_msgs/tree/humble maintained 2.2.1-3
+ur https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-bringup https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-calibration https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-client-library https://github.com/UniversalRobots/Universal_Robots_Client_Library/tree/master developed 1.3.1-1
+ur-controllers https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-dashboard-msgs https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-description https://github.com/UniversalRobots/Universal_Robots_ROS2_Description/tree/ros2 developed 2.0.1-1
+ur-moveit-config https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+ur-msgs https://github.com/ros-industrial/ur_msgs/tree/foxy developed 2.0.0-2
+ur-robot-driver https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble developed 2.2.6-1
+urdf https://github.com/ros2/urdf/tree/humble maintained 2.6.0-2
+urdf-parser-plugin https://github.com/ros2/urdf/tree/humble maintained 2.6.0-2
+urdf-test https://github.com/pal-robotics/urdf_test/tree/humble-devel maintained 2.0.1-1
+urdf-tutorial https://github.com/ros/urdf_tutorial/tree/ros2 maintained 1.0.0-3
+urdfdom https://github.com/ros/urdfdom/tree/humble maintained 3.0.2-2
+urdfdom-headers https://github.com/ros/urdfdom_headers/tree/humble maintained 1.0.6-2
+urdfdom-py https://github.com/ros/urdf_parser_py/tree/ros2 maintained 1.2.0-2
+urg-c https://github.com/ros-drivers/urg_c/tree/ros2-devel maintained 1.0.4001-4
+urg-node https://github.com/ros-drivers/urg_node/tree/ros2-devel maintained 1.1.0-3
+urg-node-msgs https://github.com/ros-drivers/urg_node_msgs/tree/master maintained 1.0.1-6
+usb-cam https://github.com/ros-drivers/usb_cam/tree/ros2 maintained 0.5.0-1
+v4l2-camera https://gitlab.com/boldhearts/ros2_v4l2_camera.git developed 0.6.0-1
+velocity-controllers https://github.com/ros-controls/ros2_controllers/tree/humble developed 2.17.1-1
+velodyne https://github.com/ros-drivers/velodyne/tree/ros2 developed 2.3.0-1
+velodyne-description https://bitbucket.org/DataspeedInc/velodyne_simulator.git maintained 2.0.3-1
+velodyne-driver https://github.com/ros-drivers/velodyne/tree/ros2 developed 2.3.0-1
+velodyne-gazebo-plugins https://bitbucket.org/DataspeedInc/velodyne_simulator.git maintained 2.0.3-1
+velodyne-laserscan https://github.com/ros-drivers/velodyne/tree/ros2 developed 2.3.0-1
+velodyne-msgs https://github.com/ros-drivers/velodyne/tree/ros2 developed 2.3.0-1
+velodyne-pointcloud https://github.com/ros-drivers/velodyne/tree/ros2 developed 2.3.0-1
+velodyne-simulator https://bitbucket.org/DataspeedInc/velodyne_simulator.git maintained 2.0.3-1
+vision-msgs https://github.com/ros-perception/vision_msgs/tree/ros2 developed 4.1.0-1
+vision-msgs-layers https://github.com/ros-sports/vision_msgs_layers/tree/humble developed 0.1.0-1
+vision-msgs-rviz-plugins https://github.com/ros-perception/vision_msgs/tree/ros2 developed 4.1.0-1
+vision-opencv https://github.com/ros-perception/vision_opencv/tree/humble maintained 3.2.1-1
+visp https://github.com/lagadic/visp/tree/master maintained 3.5.0-2
+visualization-msgs https://github.com/ros2/common_interfaces/tree/humble maintained 4.2.3-1
+vitis-common https://github.com/ros-acceleration/vitis_common/tree/rolling developed 0.4.2-2
+vrpn https://github.com/vrpn/vrpn/tree/master maintained 7.35.0-11
+wall-follower-ros2 https://github.com/rfzeg/wall_follower_ros2/tree/main maintained 0.0.1-1
+warehouse-ros https://github.com/ros-planning/warehouse_ros/tree/ros2 maintained 2.0.4-3
+warehouse-ros-sqlite https://github.com/ros-planning/warehouse_ros_sqlite/tree/ros2 maintained 1.0.3-1
+webots-ros2 https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-control https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-driver https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-epuck https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-importer https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-mavic https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-msgs https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-tesla https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-tests https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-tiago https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-turtlebot https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+webots-ros2-universal-robot https://github.com/cyberbotics/webots_ros2/tree/master maintained 2023.0.2-1
+wiimote https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+wiimote-msgs https://github.com/ros-drivers/joystick_drivers/tree/ros2 maintained 3.1.0-3
+xacro https://github.com/ros/xacro/tree/ros2 maintained 2.0.8-1
+yaml-cpp-vendor https://github.com/ros2/yaml_cpp_vendor/tree/humble maintained 8.0.2-1
+zbar-ros https://github.com/ros-drivers/zbar_ros/tree/humble maintained 0.4.0-2
+zenoh-bridge-dds https://github.com/eclipse-zenoh/zenoh-plugin-dds/tree/master developed 0.5.0-3
+zmqpp-vendor https://github.com/tier4/zmqpp_vendor/tree/main developed 0.0.2-1
+zstd-vendor https://github.com/ros2/rosbag2/tree/humble developed 0.15.4-2
+
diff --git a/humble/ros-version-fix b/humble/ros-version-fix
new file mode 100644
index 0000000000000000000000000000000000000000..6f9f78c33d212922a422af5401d12c6b8fade967
--- /dev/null
+++ b/humble/ros-version-fix
@@ -0,0 +1,21 @@
+ros2_v4l2_camera humble
+realsense-ros ros2-development
+point_cloud_msg_wrapper master
+performance_test master
+neo_simulation2 humble
+libg2o-release release/humble/libg2o
+irobot_create_msgs humble
+dbw_ros ros2
+avt_vimba_camera ros2_master
+apex_test_tools master
+apex_containers master
+SMACC2 humble
+autoware_auto_msgs master
+color_names-release upstream/0.0.3
+create3_sim-release upstream/2.0.0
+marti_messages ros2-devel
+marvelmind_ros2_msgs_release upstream/1.0.2
+picknik_ament_copyright-release upstream/0.0.2
+radar_msgs-release upstream/0.2.2
+ros_industrial_cmake_boilerplate-release upstream/0.4.0
+
diff --git a/package_fix/foonathan-memory-vendor/0-foonathan-memory-vendor-change-cmake-download.patch b/package_fix/foonathan-memory-vendor/0-foonathan-memory-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8fcc8d7bae3bd83294c3c986972c92910cd68728
--- /dev/null
+++ b/package_fix/foonathan-memory-vendor/0-foonathan-memory-vendor-change-cmake-download.patch
@@ -0,0 +1,13 @@
+diff -Naur ros-humble-foonathan-memory-vendor-1.2.0_org/CMakeLists.txt ros-humble-foonathan-memory-vendor-1.2.0/CMakeLists.txt
+--- ros-humble-foonathan-memory-vendor-1.2.0_org/CMakeLists.txt 2022-04-20 08:29:13.000000000 +0800
++++ ros-humble-foonathan-memory-vendor-1.2.0/CMakeLists.txt 2023-04-25 11:06:06.287876659 +0800
+@@ -71,8 +71,7 @@
+ endif()
+
+ externalproject_add(foo_mem-ext
+- GIT_REPOSITORY https://github.com/foonathan/memory.git
+- GIT_TAG v0.7-1
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/memory-0.7-1.tar.gz
+ TIMEOUT 600
+ # Avoid the update (git pull) and so the recompilation of foonathan_memory library each time.
+ UPDATE_COMMAND ""
diff --git a/package_fix/foonathan-memory-vendor/memory-0.7-1.tar.gz b/package_fix/foonathan-memory-vendor/memory-0.7-1.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..918b0c9a501c9240c6cbd57bdfe716cadcc36854
Binary files /dev/null and b/package_fix/foonathan-memory-vendor/memory-0.7-1.tar.gz differ
diff --git a/package_fix/foonathan-memory-vendor/prep.fix b/package_fix/foonathan-memory-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..f5881bc920fe62c102d3779689c602c1bc5b7244
--- /dev/null
+++ b/package_fix/foonathan-memory-vendor/prep.fix
@@ -0,0 +1 @@
+cp %{SOURCE1} .
diff --git a/package_fix/foonathan-memory-vendor/source.fix b/package_fix/foonathan-memory-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..d5b0e1b9b403d1297db2198085d0014bfe5fb6cb
--- /dev/null
+++ b/package_fix/foonathan-memory-vendor/source.fix
@@ -0,0 +1,3 @@
+Source1: memory-0.7-1.tar.gz
+
+Patch0: 0-foonathan-memory-vendor-change-cmake-download.patch
diff --git a/package_fix/google-benchmark-vendor/0-google-benchmark-vendor-change-cmake-download.patch b/package_fix/google-benchmark-vendor/0-google-benchmark-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..58307612ced5c60df6d3a65f2aaaf9cb9e7be36f
--- /dev/null
+++ b/package_fix/google-benchmark-vendor/0-google-benchmark-vendor-change-cmake-download.patch
@@ -0,0 +1,14 @@
+diff -Naur ros-humble-google-benchmark-vendor-0.1.1_org/CMakeLists.txt ros-humble-google-benchmark-vendor-0.1.1/CMakeLists.txt
+--- ros-humble-google-benchmark-vendor-0.1.1_org/CMakeLists.txt 2023-04-26 11:29:50.966417966 +0800
++++ ros-humble-google-benchmark-vendor-0.1.1/CMakeLists.txt 2023-04-26 11:43:25.350347881 +0800
+@@ -55,9 +55,7 @@
+ include(ExternalProject)
+
+ externalproject_add(benchmark-${GOOGLE_BENCHMARK_TARGET_VERSION}
+- GIT_REPOSITORY https://github.com/google/benchmark.git
+- GIT_TAG c05843a9f622db08ad59804c190f98879b76beba # v${GOOGLE_BENCHMARK_TARGET_VERSION}
+- GIT_CONFIG advice.detachedHead=false
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/benchmark-c05843a9f622db08ad59804c190f98879b76beba.tar.gz
+ # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419
+ # See https://github.com/ament/uncrustify_vendor/pull/22 for details
+ UPDATE_COMMAND ""
diff --git a/package_fix/google-benchmark-vendor/benchmark-c05843a9f622db08ad59804c190f98879b76beba.tar.gz b/package_fix/google-benchmark-vendor/benchmark-c05843a9f622db08ad59804c190f98879b76beba.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..9370b4bab1b1069b20bc45d7de80718c2fd62f04
Binary files /dev/null and b/package_fix/google-benchmark-vendor/benchmark-c05843a9f622db08ad59804c190f98879b76beba.tar.gz differ
diff --git a/package_fix/google-benchmark-vendor/prep.fix b/package_fix/google-benchmark-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..daa69c36045e73ff6c657096b732a962df8912fa
--- /dev/null
+++ b/package_fix/google-benchmark-vendor/prep.fix
@@ -0,0 +1,2 @@
+cp %{SOURCE1} .
+cp ${RPM_SOURCE_DIR}/0-google-benchmark-vendor-change-cmake-download.patch .
diff --git a/package_fix/google-benchmark-vendor/source.fix b/package_fix/google-benchmark-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..98303eba96d4cbc340ec18fda30d73b77aa89daf
--- /dev/null
+++ b/package_fix/google-benchmark-vendor/source.fix
@@ -0,0 +1,3 @@
+Source1: benchmark-c05843a9f622db08ad59804c190f98879b76beba.tar.gz
+
+Patch0: 0-google-benchmark-vendor-change-cmake-download.patch
diff --git a/package_fix/iceoryx-posh/0-iceoryx-posh-change-cmake-download.patch b/package_fix/iceoryx-posh/0-iceoryx-posh-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5f62f333eaa35209fd55eadf8a106dfcf49da020
--- /dev/null
+++ b/package_fix/iceoryx-posh/0-iceoryx-posh-change-cmake-download.patch
@@ -0,0 +1,13 @@
+diff -Naur ros-humble-iceoryx-posh-2.0.3_org/cmake/cpptoml/cpptoml.cmake.in ros-humble-iceoryx-posh-2.0.3/cmake/cpptoml/cpptoml.cmake.in
+--- ros-humble-iceoryx-posh-2.0.3_org/cmake/cpptoml/cpptoml.cmake.in 2023-04-25 15:20:09.843179069 +0800
++++ ros-humble-iceoryx-posh-2.0.3/cmake/cpptoml/cpptoml.cmake.in 2023-04-25 15:27:45.261850484 +0800
+@@ -21,8 +21,7 @@
+
+ include(ExternalProject)
+ ExternalProject_Add(ext_cpptoml
+- GIT_REPOSITORY https://github.com/skystrife/cpptoml.git
+- GIT_TAG v0.1.1
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/cpptoml-0.1.1.tar.gz
+ SOURCE_DIR "${CMAKE_BINARY_DIR}/dependencies/cpptoml/src"
+ BINARY_DIR "${CMAKE_BINARY_DIR}/dependencies/cpptoml/build"
+ CONFIGURE_COMMAND ""
diff --git a/package_fix/iceoryx-posh/cpptoml-0.1.1.tar.gz b/package_fix/iceoryx-posh/cpptoml-0.1.1.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..f4e3a07354bcd50200ba8e67bdccb3d582119c10
Binary files /dev/null and b/package_fix/iceoryx-posh/cpptoml-0.1.1.tar.gz differ
diff --git a/package_fix/iceoryx-posh/prep.fix b/package_fix/iceoryx-posh/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..da3a15de86f6bfd446dc1dada85cb6b380b6535e
--- /dev/null
+++ b/package_fix/iceoryx-posh/prep.fix
@@ -0,0 +1 @@
+cp %{SOURCE1} cmake/cpptoml/
diff --git a/package_fix/iceoryx-posh/source.fix b/package_fix/iceoryx-posh/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..8b86df8233d9ba65c57a87513697267dee15ffda
--- /dev/null
+++ b/package_fix/iceoryx-posh/source.fix
@@ -0,0 +1,3 @@
+Source1: cpptoml-0.1.1.tar.gz
+
+Patch0: 0-iceoryx-posh-change-cmake-download.patch
diff --git a/package_fix/mimick-vendor/0-Mimick-remove-compile-flag-o0.patch b/package_fix/mimick-vendor/0-Mimick-remove-compile-flag-o0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7ba32fd82badc298ecd5cc4b10e124c6ef17851c
--- /dev/null
+++ b/package_fix/mimick-vendor/0-Mimick-remove-compile-flag-o0.patch
@@ -0,0 +1,37 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a0ff848..88bcf36 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -194,11 +194,11 @@ endfunction ()
+ function (add_mimick_test _NAME)
+ add_executable (${_NAME} EXCLUDE_FROM_ALL ${ARGN})
+
+- if (NOT MSVC)
+- foreach (ARG ${ARGN})
+- set_source_files_properties (${ARG} PROPERTIES COMPILE_FLAGS -O0)
+- endforeach ()
+- endif ()
++ # if (NOT MSVC)
++ # foreach (ARG ${ARGN})
++ # set_source_files_properties (${ARG} PROPERTIES COMPILE_FLAGS -O0)
++ # endforeach ()
++ # endif ()
+
+ target_link_libraries (${_NAME} mimick foo)
+ add_mimick_sample(${_NAME})
+diff --git a/sample/strdup/CMakeLists.txt b/sample/strdup/CMakeLists.txt
+index f04bb9d..0177c3d 100644
+--- a/sample/strdup/CMakeLists.txt
++++ b/sample/strdup/CMakeLists.txt
+@@ -2,8 +2,8 @@ add_library (strdup SHARED strdup.c)
+ add_executable (strdup_test test.c)
+ target_link_libraries (strdup_test strdup mimick)
+
+-if (NOT MSVC)
+- set_source_files_properties (test.c PROPERTIES COMPILE_FLAGS -O0)
+-endif ()
++#if (NOT MSVC)
++# set_source_files_properties (test.c PROPERTIES COMPILE_FLAGS -O0)
++#endif ()
+
+ add_mimick_sample (strdup_test)
diff --git a/package_fix/mimick-vendor/0-mimick-vendor-change-cmake-download.patch b/package_fix/mimick-vendor/0-mimick-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bdeea5f7f35fd2e3993cf5ca92183135a3c27e3a
--- /dev/null
+++ b/package_fix/mimick-vendor/0-mimick-vendor-change-cmake-download.patch
@@ -0,0 +1,18 @@
+diff -Naur ros-humble-mimick-vendor-0.2.8_org/CMakeLists.txt ros-humble-mimick-vendor-0.2.8/CMakeLists.txt
+--- ros-humble-mimick-vendor-0.2.8_org/CMakeLists.txt 2023-04-25 20:24:32.446707460 +0800
++++ ros-humble-mimick-vendor-0.2.8/CMakeLists.txt 2023-04-25 21:06:45.335811677 +0800
+@@ -58,11 +58,10 @@
+ endif()
+
+ include(ExternalProject)
+- set(mimick_version "de11f8377eb95f932a03707b583bf3d4ce5bd3e7")
+ externalproject_add(mimick-${mimick_version}
+- GIT_REPOSITORY https://github.com/ros2/Mimick.git
+- GIT_TAG ${mimick_version}
+- GIT_CONFIG advice.detachedHead=false
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/Mimick-de11f8377eb95f932a03707b583bf3d4ce5bd3e7.tar.gz
++ PATCH_COMMAND
++ patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/0-Mimick-remove-compile-flag-o0.patch
+ # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419
+ UPDATE_COMMAND ""
+ TIMEOUT 6000
diff --git a/package_fix/mimick-vendor/Mimick-de11f8377eb95f932a03707b583bf3d4ce5bd3e7.tar.gz b/package_fix/mimick-vendor/Mimick-de11f8377eb95f932a03707b583bf3d4ce5bd3e7.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..dc9d7855c4438894f4bc1f0840acc305516e28ba
Binary files /dev/null and b/package_fix/mimick-vendor/Mimick-de11f8377eb95f932a03707b583bf3d4ce5bd3e7.tar.gz differ
diff --git a/package_fix/mimick-vendor/prep.fix b/package_fix/mimick-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..2df83b3c143b666779d1ddeff6885c4ea25ba82b
--- /dev/null
+++ b/package_fix/mimick-vendor/prep.fix
@@ -0,0 +1,2 @@
+cp %{SOURCE1} .
+cp ${RPM_SOURCE_DIR}/0-Mimick-remove-compile-flag-o0.patch .
diff --git a/package_fix/mimick-vendor/source.fix b/package_fix/mimick-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..8859a5ece8793c7583d9e54b5a3c73ef4cc72403
--- /dev/null
+++ b/package_fix/mimick-vendor/source.fix
@@ -0,0 +1,2 @@
+Source1: Mimick-de11f8377eb95f932a03707b583bf3d4ce5bd3e7.tar.gz
+Patch0: 0-mimick-vendor-change-cmake-download.patch
diff --git a/package_fix/qpoases-vendor/0-qpoases-vendor-change-cmake-download.patch b/package_fix/qpoases-vendor/0-qpoases-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5def51addae888aadb7a358ba273c68fa5391d6f
--- /dev/null
+++ b/package_fix/qpoases-vendor/0-qpoases-vendor-change-cmake-download.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 54a6521..86884ab 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,8 +7,7 @@ ament_auto_find_build_dependencies()
+
+ include(ExternalProject)
+ ExternalProject_Add(qpoases_3_2
+- SVN_REPOSITORY https://projects.coin-or.org/svn/qpOASES/stable/3.2
+- SVN_TRUST_CERT TRUE
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/qpoases_3_2/3.2.0.tar.gz
+ BUILD_IN_SOURCE TRUE
+ INSTALL_COMMAND ""
+ )
diff --git a/package_fix/qpoases-vendor/3.2.0.tar.gz b/package_fix/qpoases-vendor/3.2.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..49eb41ef8745afc8cbca4308763040cd1a3fd32b
Binary files /dev/null and b/package_fix/qpoases-vendor/3.2.0.tar.gz differ
diff --git a/package_fix/qpoases-vendor/prep.fix b/package_fix/qpoases-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..6cf708b085597dde8bbebc5e064996c7ff702f75
--- /dev/null
+++ b/package_fix/qpoases-vendor/prep.fix
@@ -0,0 +1 @@
+cp %{SOURCE1} qpoases_3_2/
diff --git a/package_fix/qpoases-vendor/source.fix b/package_fix/qpoases-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..a170b5d44d5ae2ade19058197f09d8459cfec059
--- /dev/null
+++ b/package_fix/qpoases-vendor/source.fix
@@ -0,0 +1,3 @@
+Source1: 3.2.0.tar.gz
+
+Patch0: 0-qpoases-vendor-change-cmake-download.patch
diff --git a/package_fix/shared-queues-vendor/0-shard-queues-vendor-change-cmake-download.patch b/package_fix/shared-queues-vendor/0-shard-queues-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c2749211beb376818ae12eb0618cbbeb70e6059b
--- /dev/null
+++ b/package_fix/shared-queues-vendor/0-shard-queues-vendor-change-cmake-download.patch
@@ -0,0 +1,21 @@
+diff -Naur ros-humble-shared-queues-vendor-0.15.4_org/CMakeLists.txt ros-humble-shared-queues-vendor-0.15.4/CMakeLists.txt
+--- ros-humble-shared-queues-vendor-0.15.4_org/CMakeLists.txt 2023-04-24 09:48:32.602033696 +0800
++++ ros-humble-shared-queues-vendor-0.15.4/CMakeLists.txt 2023-04-24 09:50:20.619616042 +0800
+@@ -13,7 +13,7 @@
+ ExternalProject_Add(ext-singleproducerconsumer
+ PREFIX singleproducerconsumer
+ DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/download
+- URL https://github.com/cameron314/readerwriterqueue/archive/ef7dfbf553288064347d51b8ac335f1ca489032a.zip
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/ef7dfbf553288064347d51b8ac335f1ca489032a.zip
+ URL_MD5 64c673dd381b8fae9254053ad7b2be4d
+ TIMEOUT 60
+ INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
+@@ -26,7 +26,7 @@
+ ExternalProject_Add(ext-concurrentqueue
+ PREFIX concurrentqueue
+ DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/download
+- URL https://github.com/cameron314/concurrentqueue/archive/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip
+ URL_MD5 71a0d932cc89150c2ade85f0d9cac9dc
+ TIMEOUT 60
+ INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
diff --git a/package_fix/shared-queues-vendor/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip b/package_fix/shared-queues-vendor/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip
new file mode 100644
index 0000000000000000000000000000000000000000..773687e5021abd219b05a1d81113458ebc1f4317
Binary files /dev/null and b/package_fix/shared-queues-vendor/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip differ
diff --git a/package_fix/shared-queues-vendor/ef7dfbf553288064347d51b8ac335f1ca489032a.zip b/package_fix/shared-queues-vendor/ef7dfbf553288064347d51b8ac335f1ca489032a.zip
new file mode 100644
index 0000000000000000000000000000000000000000..5cfa677009cf1481a9e626aa95a1852adf0365a1
Binary files /dev/null and b/package_fix/shared-queues-vendor/ef7dfbf553288064347d51b8ac335f1ca489032a.zip differ
diff --git a/package_fix/shared-queues-vendor/prep.fix b/package_fix/shared-queues-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..36e27f00ceca65114d067607d4f413c8fecae578
--- /dev/null
+++ b/package_fix/shared-queues-vendor/prep.fix
@@ -0,0 +1,2 @@
+cp %{SOURCE1} .
+cp %{SOURCE2} .
diff --git a/package_fix/shared-queues-vendor/source.fix b/package_fix/shared-queues-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..5e19b97023287a3a7a4a81d2f7bb31233ff882a3
--- /dev/null
+++ b/package_fix/shared-queues-vendor/source.fix
@@ -0,0 +1,4 @@
+Source1: 8f65a8734d77c3cc00d74c0532efca872931d3ce.zip
+Source2: ef7dfbf553288064347d51b8ac335f1ca489032a.zip
+
+Patch0: 0-shard-queues-vendor-change-cmake-download.patch
diff --git a/package_fix/uncrustify-vendor/0-uncrustify-vendor-change-cmake-download.patch b/package_fix/uncrustify-vendor/0-uncrustify-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6fb32580decce69d719c1a9367503f5d7342099a
--- /dev/null
+++ b/package_fix/uncrustify-vendor/0-uncrustify-vendor-change-cmake-download.patch
@@ -0,0 +1,14 @@
+diff -Naur ros-humble-uncrustify-vendor-2.0.2_org/CMakeLists.txt ros-humble-uncrustify-vendor-2.0.2/CMakeLists.txt
+--- ros-humble-uncrustify-vendor-2.0.2_org/CMakeLists.txt 2023-04-24 19:42:11.743817518 +0800
++++ ros-humble-uncrustify-vendor-2.0.2/CMakeLists.txt 2023-04-24 19:46:50.259897492 +0800
+@@ -44,9 +44,7 @@
+
+ # Get uncrustify 0.72.0
+ ExternalProject_Add(uncrustify-0.72.0
+- GIT_REPOSITORY https://github.com/uncrustify/uncrustify.git
+- GIT_TAG 1d3d8fa5e81bece0fac4b81316b0844f7cc35926 # uncrustify-0.72.0
+- GIT_CONFIG advice.detachedHead=false
++ URL ${CMAKE_CURRENT_SOURCE_DIR}/uncrustify-0.72.0.tar.gz
+ # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419
+ # See https://github.com/ament/uncrustify_vendor/pull/22 for details
+ UPDATE_COMMAND ""
diff --git a/package_fix/uncrustify-vendor/prep.fix b/package_fix/uncrustify-vendor/prep.fix
new file mode 100644
index 0000000000000000000000000000000000000000..f5881bc920fe62c102d3779689c602c1bc5b7244
--- /dev/null
+++ b/package_fix/uncrustify-vendor/prep.fix
@@ -0,0 +1 @@
+cp %{SOURCE1} .
diff --git a/package_fix/uncrustify-vendor/source.fix b/package_fix/uncrustify-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..a87109e8abadbc4980a038575925e73972f8fe0c
--- /dev/null
+++ b/package_fix/uncrustify-vendor/source.fix
@@ -0,0 +1,3 @@
+Source1: uncrustify-0.72.0.tar.gz
+
+Patch0: 0-uncrustify-vendor-change-cmake-download.patch
diff --git a/package_fix/uncrustify-vendor/uncrustify-0.72.0.tar.gz b/package_fix/uncrustify-vendor/uncrustify-0.72.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..3c055d1ff1fddb53e323a3b61c99471d204e6202
Binary files /dev/null and b/package_fix/uncrustify-vendor/uncrustify-0.72.0.tar.gz differ
diff --git a/package_fix/zstd-vendor/0-zstd-vendor-change-cmake-download.patch b/package_fix/zstd-vendor/0-zstd-vendor-change-cmake-download.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c791380ce6b465e21b1f341a1e1e0a5e431aee23
--- /dev/null
+++ b/package_fix/zstd-vendor/0-zstd-vendor-change-cmake-download.patch
@@ -0,0 +1,47 @@
+diff -Naur ros-humble-zstd-vendor-0.15.4_org/apply-patches ros-humble-zstd-vendor-0.15.4/apply-patches
+--- ros-humble-zstd-vendor-0.15.4_org/apply-patches 1970-01-01 08:00:00.000000000 +0800
++++ ros-humble-zstd-vendor-0.15.4/apply-patches 2023-04-25 17:55:33.603762587 +0800
+@@ -0,0 +1,13 @@
++#!/bin/bash
++
++tar -xf zstd-1.5.0.tar.gz
++cd zstd-1.5.0
++
++for p in `grep -P "^Patch\d+:" ../zstd.spec | awk '{print $2}'`
++do
++ patch -p1 < ../$p
++done
++
++cd ..
++mv zstd-1.5.0/* .
++
+diff -Naur ros-humble-zstd-vendor-0.15.4_org/CMakeLists.txt ros-humble-zstd-vendor-0.15.4/CMakeLists.txt
+--- ros-humble-zstd-vendor-0.15.4_org/CMakeLists.txt 2023-04-25 17:47:31.596701680 +0800
++++ ros-humble-zstd-vendor-0.15.4/CMakeLists.txt 2023-04-25 18:54:12.563311748 +0800
+@@ -31,9 +31,11 @@
+ # The CMakeLists.txt file for zstd is in a subdirectory.
+ # We need to configure the CMake command to build from there instead.
+ ExternalProject_Add(zstd-${zstd_version}
+- GIT_REPOSITORY https://github.com/facebook/zstd.git
+- GIT_TAG 10f0e6993f9d2f682da6d04aa2385b7d53cbb4ee # v${zstd_version}
++ GIT_REPOSITORY https://gitee.com/src-openeuler/zstd.git
++ GIT_TAG openEuler-22.03-LTS-SP1
+ GIT_CONFIG advice.detachedHead=false
++ PATCH_COMMAND
++ sh ${CMAKE_CURRENT_SOURCE_DIR}/apply-patches
+ # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419
+ # See https://github.com/ament/uncrustify_vendor/pull/22 for details
+ UPDATE_COMMAND ""
+@@ -45,12 +47,6 @@
+ -DZSTD_BUILD_SHARED=ON
+ -DZSTD_BUILD_PROGRAMS=OFF
+ ${extra_cmake_args}
+- # Note: zstd v1.4.6 will include the following fix. When that is released, upgrade and remove this patch.
+- PATCH_COMMAND
+- ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn
+- ${CMAKE_CURRENT_SOURCE_DIR}/cmake_minimum_required_2.8.12.patch &&
+- ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn
+- ${CMAKE_CURRENT_SOURCE_DIR}/no_internal_headers.patch
+ )
+
+ install(
diff --git a/package_fix/zstd-vendor/source.fix b/package_fix/zstd-vendor/source.fix
new file mode 100644
index 0000000000000000000000000000000000000000..191161378d594ea883cfbcab7084a13ed93c10b3
--- /dev/null
+++ b/package_fix/zstd-vendor/source.fix
@@ -0,0 +1 @@
+Patch0: 0-zstd-vendor-change-cmake-download.patch
diff --git a/push-projects-to-gitee.sh b/push-projects-to-gitee.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e7ed5552b08e213f143f93d0569e3c0ed29935f4
--- /dev/null
+++ b/push-projects-to-gitee.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+. base.sh
+
+PUSH=$1
+ROS_PUSH_LIST=${OUTPUT}/ros-push.list
+
+prepare()
+{
+ if [ ! -f ${ROS_PROJECTS_NAME} ]
+ then
+ error_log "Please give the source repo path of ros"
+ exit 1
+ fi
+
+ mkdir -p ${ROS_GITEE_BASE}
+
+ rm -f ${ROS_PUSH_LIST}
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to push projects to $GITEE_DOMAIN/$GITEE_ORG"
+
+ while read project
+ do
+ #info_log "start push project ${project}"
+
+ if [ ! -d ${ROS_GITEE_BASE}/${project}/.git ]
+ then
+ error_log "project ${project} not exist, ignore"
+ continue
+ fi
+
+ cd ${ROS_GITEE_BASE}/${project}
+ rm -f *
+ git checkout -- README.md README.en.md
+ cp ${ROS_REPO_BASE}/${project}/* ${ROS_GITEE_BASE}/${project}
+ git status | grep -qE "modified:|Untracked"
+ if [ $? -ne 0 ]
+ then
+ #info_log "nothing changed of project $project, continue"
+ continue
+ fi
+
+ echo $project >>${ROS_PUSH_LIST}
+
+ info_log "start push project ${project}"
+ git add -A
+ if [ "$PUSH" != "yes" ]
+ then
+ git diff HEAD --exit-code
+ continue
+ fi
+
+ git commit -m "upload on `date`"
+ #git push git@${GITEE_DOMAIN}:${GITEE_ORG}/${project}.git
+ git push origin ${ROS_DISTRO}:${ROS_DISTRO}
+ if [ $? -ne 0 ]
+ then
+ error_log "fail to push project ${project}"
+ continue
+ fi
+ done < ${ROS_PROJECTS_NAME}
+
+ info_log "push project ok"
+}
+
+main $*
diff --git a/spec_fix/google-benchmark-vendor.BuildRequires b/spec_fix/google-benchmark-vendor.BuildRequires
new file mode 100644
index 0000000000000000000000000000000000000000..13315b219c25bbee2f279f499a742222e2fb0e48
--- /dev/null
+++ b/spec_fix/google-benchmark-vendor.BuildRequires
@@ -0,0 +1 @@
+-benchmark
diff --git a/spec_fix/google-benchmark-vendor.Requires b/spec_fix/google-benchmark-vendor.Requires
new file mode 100644
index 0000000000000000000000000000000000000000..13315b219c25bbee2f279f499a742222e2fb0e48
--- /dev/null
+++ b/spec_fix/google-benchmark-vendor.Requires
@@ -0,0 +1 @@
+-benchmark
diff --git a/spec_fix/iceoryx-hoofs.BuildRequires b/spec_fix/iceoryx-hoofs.BuildRequires
new file mode 100644
index 0000000000000000000000000000000000000000..325477d516e99296e90a8fd319be7a76acbc23e0
--- /dev/null
+++ b/spec_fix/iceoryx-hoofs.BuildRequires
@@ -0,0 +1 @@
++libacl-devel
diff --git a/spec_fix/iceoryx-hoofs.Requires b/spec_fix/iceoryx-hoofs.Requires
new file mode 100644
index 0000000000000000000000000000000000000000..325477d516e99296e90a8fd319be7a76acbc23e0
--- /dev/null
+++ b/spec_fix/iceoryx-hoofs.Requires
@@ -0,0 +1 @@
++libacl-devel
diff --git a/spec_fix/libcurl-vendor.BuildRequires b/spec_fix/libcurl-vendor.BuildRequires
new file mode 100644
index 0000000000000000000000000000000000000000..7a3d74bfe3daed756b5e9d096818db11f84650a3
--- /dev/null
+++ b/spec_fix/libcurl-vendor.BuildRequires
@@ -0,0 +1,2 @@
++libcurl-devel
++openssl-devel
diff --git a/spec_fix/libcurl-vendor.Requires b/spec_fix/libcurl-vendor.Requires
new file mode 100644
index 0000000000000000000000000000000000000000..dbe257a44cac8780d9c10e7a516142bf56ed6bcb
--- /dev/null
+++ b/spec_fix/libcurl-vendor.Requires
@@ -0,0 +1 @@
++libcurl-devel
diff --git a/spec_fix/no-debuginfo b/spec_fix/no-debuginfo
new file mode 100644
index 0000000000000000000000000000000000000000..a91f9d5c41998e71f0f5fb3c87f1ec3d2d093d88
--- /dev/null
+++ b/spec_fix/no-debuginfo
@@ -0,0 +1,2 @@
+tlsf
+mavlink
diff --git a/spec_fix/pkg.remap b/spec_fix/pkg.remap
new file mode 100644
index 0000000000000000000000000000000000000000..6947d909d2c1de4e1a72df03ef4d4d6f5f6d3bb5
--- /dev/null
+++ b/spec_fix/pkg.remap
@@ -0,0 +1,42 @@
+gtest gtest-devel
+tinyxml2 tinyxml2-devel
+tinyxml tinyxml-devel
+yaml-cpp yaml-cpp-devel
+libxml2-utils libxml2
+pydocstyle python3-pydocstyle
+pkg-config pkgconfig
+python3-dev python3-devel
+sdl2 SDL2-devel
+assimp-dev assimp-devel
+assimp assimp-devel
+binutils binutils-devel
+bullet bullet-devel
+bzip2 bzip2-devel
+eigen eigen3-devel
+fmt fmt-devel
+gtk3 gtk3-devel
+libccd-dev libccd-devel
+libfreenect-dev libfreenect-devel
+libgpiod-dev libgpiod-devel
+libogg libogg-devel
+libpcap libpcap-devel
+libpng-dev libpng-devel
+libspnav-dev libspnav-devel
+libtheora libtheora-devel
+libudev-dev libudev-devel
+libx11-dev libX11-devel
+libxaw libXaw-devel
+libxrandr libXrandr-devel
+libzstd-dev libzstd-devel
+lua52-dev lua-devel
+proj proj-devel
+protobuf-dev protobuf-devel
+pugixml-dev pugixml-devel
+spdlog spdlog-devel
+spirv-headers spirv-headers-devel
+suitesparse suitesparse-devel
+tbb tbb-devel
+zbar zbar-devel
+zlib zlib-devel
+libsqlite3-dev sqlite-devel
+google-mock gmock-devel
diff --git a/spec_fix/spec-type-fix b/spec_fix/spec-type-fix
new file mode 100644
index 0000000000000000000000000000000000000000..c1ac0d0bc9e31b11dd5b2a8d258f3c53522ad53e
--- /dev/null
+++ b/spec_fix/spec-type-fix
@@ -0,0 +1 @@
+angles cmake
diff --git a/spec_fix/uncrustify-vendor.BuildRequires b/spec_fix/uncrustify-vendor.BuildRequires
new file mode 100644
index 0000000000000000000000000000000000000000..bb7394ab9903dc278ed8e110f7793454863132ee
--- /dev/null
+++ b/spec_fix/uncrustify-vendor.BuildRequires
@@ -0,0 +1 @@
+-uncrustify
diff --git a/spec_fix/uncrustify-vendor.Requires b/spec_fix/uncrustify-vendor.Requires
new file mode 100644
index 0000000000000000000000000000000000000000..bb7394ab9903dc278ed8e110f7793454863132ee
--- /dev/null
+++ b/spec_fix/uncrustify-vendor.Requires
@@ -0,0 +1 @@
+-uncrustify
diff --git a/template/cmake-ubuntu.spec b/template/cmake-ubuntu.spec
new file mode 100644
index 0000000000000000000000000000000000000000..ddb5afd382889c9e2d20ff8ba55cf8ba86731af1
--- /dev/null
+++ b/template/cmake-ubuntu.spec
@@ -0,0 +1,100 @@
+%bcond_without tests
+%bcond_without weak_deps
+
+ROS_PACKAGE_NO_DEBUGINFO
+%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
+%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$
+%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
+
+%define RosPkgName ROS_PACKAGE_NAME
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: ROS_PACKAGE_VERSION
+Release: ROS_PACKAGE_RELEASE%{?dist}%{?release_suffix}
+Summary: ROS_PACKAGE_SUMMARY
+
+Url: ROS_PACKAGE_URL
+License: ROS_PACKAGE_LICENSE
+Source0: %{name}_%{version}.orig.tar.gz
+ROS_SOURCE_FIX
+
+ROS_PACKAGE_REQUIRES
+ROS_ALL_FIX_REQUIRESRequires: ros-%{ros_distro}-ros-workspace
+
+ROS_PACKAGE_BUILDREQUIRES
+ROS_ALL_FIX_REQUIRESBuildRequires: ros-%{ros_distro}-ros-workspace
+
+%if 0%{?with_tests}
+ROS_TEST_BUILDREQUIRES
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+ROS_PACKAGE_DESCRIPTION
+
+%prep
+%autosetup -p1
+ROS_PREP_FIX
+
+%build
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform}
+%cmake3 \
+ -UINCLUDE_INSTALL_DIR \
+ -ULIB_INSTALL_DIR \
+ -USYSCONF_INSTALL_DIR \
+ -USHARE_INSTALL_PREFIX \
+ -ULIB_SUFFIX \
+ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
+ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DSETUPTOOLS_DEB_LAYOUT=OFF \
+%if !0%{?with_tests}
+ -DBUILD_TESTING=OFF \
+%endif
+ ..
+
+%make_build
+
+%install
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%make_install -C .obj-%{_target_platform}
+
+%if 0%{?with_tests}
+%check
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# Look for a Makefile target with a name indicating that it runs tests
+TEST_TARGET=$(%__make -qp -C .obj-%{_target_platform} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0")
+if [ -n "$TEST_TARGET" ]; then
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+CTEST_OUTPUT_ON_FAILURE=1 \
+ %make_build -C .obj-%{_target_platform} $TEST_TARGET || echo "RPM TESTS FAILED"
+else echo "RPM TESTS SKIPPED"; fi
+%endif
+
+%files
+/opt/ros/%{ros_distro}
+
+%changelog
+* ROS_PACKAGE_CHANGELOG
+- Autogenerated by ros-tools
diff --git a/template/cmake.spec b/template/cmake.spec
new file mode 100644
index 0000000000000000000000000000000000000000..fc813cec0a446fd2351657c85c982479f9f46531
--- /dev/null
+++ b/template/cmake.spec
@@ -0,0 +1,100 @@
+%bcond_without tests
+%bcond_without weak_deps
+
+ROS_PACKAGE_NO_DEBUGINFO
+%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
+%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$
+%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
+
+%define RosPkgName ROS_PACKAGE_NAME
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: ROS_PACKAGE_VERSION
+Release: ROS_PACKAGE_RELEASE%{?dist}%{?release_suffix}
+Summary: ROS_PACKAGE_SUMMARY
+
+Url: ROS_PACKAGE_URL
+License: ROS_PACKAGE_LICENSE
+Source0: %{RosPkgName}-%{version}.tar.gz
+ROS_SOURCE_FIX
+
+ROS_PACKAGE_REQUIRES
+ROS_ALL_FIX_REQUIRESRequires: ros-%{ros_distro}-ros-workspace
+
+ROS_PACKAGE_BUILDREQUIRES
+ROS_ALL_FIX_REQUIRESBuildRequires: ros-%{ros_distro}-ros-workspace
+
+%if 0%{?with_tests}
+ROS_TEST_BUILDREQUIRES
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+ROS_PACKAGE_DESCRIPTION
+
+%prep
+%autosetup -c -n %{name}-%{version}
+ROS_PREP_FIX
+
+%build
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform}
+%cmake3 \
+ -UINCLUDE_INSTALL_DIR \
+ -ULIB_INSTALL_DIR \
+ -USYSCONF_INSTALL_DIR \
+ -USHARE_INSTALL_PREFIX \
+ -ULIB_SUFFIX \
+ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
+ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DSETUPTOOLS_DEB_LAYOUT=OFF \
+%if !0%{?with_tests}
+ -DBUILD_TESTING=OFF \
+%endif
+ ../%{RosPkgName}-%{version}
+
+%make_build
+
+%install
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%make_install -C .obj-%{_target_platform}
+
+%if 0%{?with_tests}
+%check
+# Needed to bootstrap since the ros_workspace package does not yet exist.
+export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages
+
+# Look for a Makefile target with a name indicating that it runs tests
+TEST_TARGET=$(%__make -qp -C .obj-%{_target_platform} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0")
+if [ -n "$TEST_TARGET" ]; then
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+CTEST_OUTPUT_ON_FAILURE=1 \
+ %make_build -C .obj-%{_target_platform} $TEST_TARGET || echo "RPM TESTS FAILED"
+else echo "RPM TESTS SKIPPED"; fi
+%endif
+
+%files
+/opt/ros/%{ros_distro}
+
+%changelog
+* ROS_PACKAGE_CHANGELOG
+- Autogenerated by ros-tools
diff --git a/template/py-ubuntu.spec b/template/py-ubuntu.spec
new file mode 100644
index 0000000000000000000000000000000000000000..c8c583f50654dfb16e60c218da156bdc4ff8226c
--- /dev/null
+++ b/template/py-ubuntu.spec
@@ -0,0 +1,75 @@
+%bcond_without tests
+%bcond_without weak_deps
+
+%global debug_package %{nil}
+%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
+%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$
+%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
+
+%define RosPkgName ROS_PACKAGE_NAME
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: ROS_PACKAGE_VERSION
+Release: ROS_PACKAGE_RELEASE%{?dist}%{?release_suffix}
+Summary: ROS_PACKAGE_SUMMARY
+
+Url: ROS_PACKAGE_URL
+License: ROS_PACKAGE_LICENSE
+Source0: %{name}_%{version}.orig.tar.gz
+ROS_SOURCE_FIX
+
+ROS_PACKAGE_REQUIRES
+ROS_ALL_FIX_REQUIRESRequires: ros-%{ros_distro}-ros-workspace
+
+ROS_PACKAGE_BUILDREQUIRES
+ROS_ALL_FIX_REQUIRESBuildRequires: ros-%{ros_distro}-ros-workspace
+
+%if 0%{?with_tests}
+ROS_TEST_BUILDREQUIRES
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+ROS_PACKAGE_DESCRIPTION
+
+%prep
+%autosetup -p1
+ROS_PREP_FIX
+
+%build
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%py3_build
+
+%install
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%py3_install -- --prefix "/opt/ros/%{ros_distro}"
+
+%if 0%{?with_tests}
+%check
+# Look for a directory with a name indicating that it contains tests
+TEST_TARGET=$(ls -d * | grep -m1 "\(test\|tests\)" ||:)
+if [ -n "$TEST_TARGET" ] && %__python3 -m pytest --version; then
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%__python3 -m pytest $TEST_TARGET || echo "RPM TESTS FAILED"
+else echo "RPM TESTS SKIPPED"; fi
+%endif
+
+%files
+/opt/ros/%{ros_distro}
+
+%changelog
+* ROS_PACKAGE_CHANGELOG
+- Autogenerated by ros-tools
diff --git a/template/py.spec b/template/py.spec
new file mode 100644
index 0000000000000000000000000000000000000000..7a05d3a609fae0fffc7dc1c2c3cd8586f0696d7e
--- /dev/null
+++ b/template/py.spec
@@ -0,0 +1,77 @@
+%bcond_without tests
+%bcond_without weak_deps
+
+%global debug_package %{nil}
+%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
+%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$
+%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
+
+%define RosPkgName ROS_PACKAGE_NAME
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: ROS_PACKAGE_VERSION
+Release: ROS_PACKAGE_RELEASE%{?dist}%{?release_suffix}
+Summary: ROS_PACKAGE_SUMMARY
+
+Url: ROS_PACKAGE_URL
+License: ROS_PACKAGE_LICENSE
+Source0: %{RosPkgName}-%{version}.tar.gz
+ROS_SOURCE_FIX
+
+ROS_PACKAGE_REQUIRES
+ROS_ALL_FIX_REQUIRESRequires: ros-%{ros_distro}-ros-workspace
+
+ROS_PACKAGE_BUILDREQUIRES
+ROS_ALL_FIX_REQUIRESBuildRequires: ros-%{ros_distro}-ros-workspace
+
+%if 0%{?with_tests}
+ROS_TEST_BUILDREQUIRES
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+ROS_PACKAGE_DESCRIPTION
+
+%prep
+%autosetup -c -n %{name}-%{version}
+ROS_PREP_FIX
+
+%build
+
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+cd %{RosPkgName}-%{version}
+%py3_build
+
+%install
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+cd %{RosPkgName}-%{version}
+%py3_install -- --prefix "/opt/ros/%{ros_distro}"
+
+%if 0%{?with_tests}
+%check
+# Look for a directory with a name indicating that it contains tests
+TEST_TARGET=$(ls -d * | grep -m1 "\(test\|tests\)" ||:)
+if [ -n "$TEST_TARGET" ] && %__python3 -m pytest --version; then
+# In case we're installing to a non-standard location, look for a setup.sh
+# in the install tree and source it. It will set things like
+# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
+if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi
+%__python3 -m pytest $TEST_TARGET || echo "RPM TESTS FAILED"
+else echo "RPM TESTS SKIPPED"; fi
+%endif
+
+%files
+/opt/ros/%{ros_distro}
+
+%changelog
+* ROS_PACKAGE_CHANGELOG
+- Autogenerated by ros-tools
diff --git a/trigger-projects-build-in-obs.sh b/trigger-projects-build-in-obs.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ca45dca5f68252e4240f2a133ebee50656a3e8cf
--- /dev/null
+++ b/trigger-projects-build-in-obs.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+. base.sh
+
+ROS_PUSH_LIST=${OUTPUT}/ros-push.list
+
+prepare()
+{
+ if [ ! -f ${ROS_PUSH_LIST} ]
+ then
+ error_log "Please give the ${ROS_CHECK_LIST}"
+ exit 1
+ fi
+}
+
+main()
+{
+ prepare
+
+ info_log "Start to analyse ros-pkg."
+
+ while read project
+ do
+ info_log "start rerun $project"
+ osc service remoterun ${OBS_PROJECT} $project
+ done < ${ROS_PUSH_LIST}
+
+ info_log "get status of projects ok"
+}
+
+main $*