catkin: updating to 0.5.73

The catkin recipe was updated to 0.5.73 to be in line with
4551e7c32d/hydro/release.yaml.
The previously applied patch has been included in 0.5.73 and is
removed from the recipe and this repository.
This commit is contained in:
Lukas Bulwahn 2013-08-26 09:02:04 +02:00
parent 2d056bff2a
commit 8f4d4ad2a6
2 changed files with 2 additions and 520 deletions

View File

@ -1,515 +0,0 @@
From a0d699a08f10424adad38eee25673c9a66120ec4 Mon Sep 17 00:00:00 2001
From: Dirk Thomas <dthomas@osrfoundation.org>
Date: Thu, 25 Jul 2013 14:54:43 -0700
Subject: [PATCH 1/4] modify logic of sourcing env hooks to provide context of
workspace to each env hook (#490)
---
cmake/templates/_setup_util.py.in | 26 +++++++++++++++++++++-----
cmake/templates/setup.sh.in | 34 +++++++++++-----------------------
2 files changed, 32 insertions(+), 28 deletions(-)
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
index 6957b10..e7e57ee 100755
--- a/cmake/templates/_setup_util.py.in
+++ b/cmake/templates/_setup_util.py.in
@@ -200,7 +200,9 @@ def find_env_hooks(environ, cmake_prefix_path):
lines.append(comment('found environment hooks in workspaces'))
generic_env_hooks = []
+ generic_env_hooks_workspace = []
specific_env_hooks = []
+ specific_env_hooks_workspace = []
generic_env_hooks_by_filename = {}
specific_env_hooks_by_filename = {}
generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
@@ -212,18 +214,32 @@ def find_env_hooks(environ, cmake_prefix_path):
if os.path.isdir(env_hook_dir):
for filename in sorted(os.listdir(env_hook_dir)):
if filename.endswith('.%s' % generic_env_hook_ext):
- generic_env_hooks.append(os.path.join(env_hook_dir, filename))
# remove previous env hook with same name if present
if filename in generic_env_hooks_by_filename:
- generic_env_hooks.remove(generic_env_hooks_by_filename[filename])
+ i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
+ generic_env_hooks.pop(i)
+ generic_env_hooks_workspace.pop(i)
+ # append env hook
+ generic_env_hooks.append(os.path.join(env_hook_dir, filename))
+ generic_env_hooks_workspace.append(workspace)
generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
- specific_env_hooks.append(os.path.join(env_hook_dir, filename))
# remove previous env hook with same name if present
if filename in specific_env_hooks_by_filename:
- specific_env_hooks.remove(specific_env_hooks_by_filename[filename])
+ i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
+ specific_env_hooks.pop(i)
+ specific_env_hooks_workspace.pop(i)
+ # append env hook
+ specific_env_hooks.append(os.path.join(env_hook_dir, filename))
+ specific_env_hooks_workspace.append(workspace)
specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
- lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS', os.pathsep.join(generic_env_hooks + specific_env_hooks)))
+ env_hooks = generic_env_hooks + specific_env_hooks
+ env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
+ count = len(env_hooks)
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
+ for i in range(count):
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
return lines
diff --git a/cmake/templates/setup.sh.in b/cmake/templates/setup.sh.in
index c29adf5..fa28dfb 100644
--- a/cmake/templates/setup.sh.in
+++ b/cmake/templates/setup.sh.in
@@ -47,30 +47,18 @@ CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ > $_SETUP_TMP
. $_SETUP_TMP
rm -f $_SETUP_TMP
-# save value of IFS, including if it was unset
-# the "+x" syntax helps differentiate unset from empty
-_IFS=$IFS
-if [ -z ${IFS+x} ]; then
- _IFS_WAS_UNSET=1
-fi
-
# source all environment hooks
-IFS=":"
-for _envfile in $_CATKIN_ENVIRONMENT_HOOKS; do
- # restore value of IFS, including if it was unset
- IFS=$_IFS
- if [ $_IFS_WAS_UNSET ]; then
- unset IFS
- fi
+_i=0
+while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
+ eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
+ unset _CATKIN_ENVIRONMENT_HOOKS_$_i
+ eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+ unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+ # set workspace for environment hook
+ CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
. "$_envfile"
+ unset CATKIN_ENV_HOOK_WORKSPACE
+ _i=$((_i + 1))
done
-# restore value of IFS, including if it was unset
-IFS=$_IFS
-if [ $_IFS_WAS_UNSET ]; then
- unset IFS
- unset _IFS_WAS_UNSET
-fi
-unset _IFS
-
-unset _CATKIN_ENVIRONMENT_HOOKS
+unset _CATKIN_ENVIRONMENT_HOOKS_COUNT
--
1.8.1.6
From 644daf7443bf3f3ed3f178800478cb5724298a16 Mon Sep 17 00:00:00 2001
From: Dirk Thomas <dthomas@osrfoundation.org>
Date: Thu, 25 Jul 2013 17:01:11 -0700
Subject: [PATCH 2/4] update shell scripts to define or allow override
CATKIN_SETUP_DIR (#490)
---
cmake/templates/_setup_util.py.in | 15 ++++++++-------
cmake/templates/env.sh.in | 8 +++++---
cmake/templates/setup.bash.in | 5 ++++-
cmake/templates/setup.sh.in | 5 ++++-
cmake/templates/setup.zsh.in | 3 ++-
5 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
index e7e57ee..0d3c86a 100755
--- a/cmake/templates/_setup_util.py.in
+++ b/cmake/templates/_setup_util.py.in
@@ -41,13 +41,6 @@ import os
import platform
import sys
-# environment at generation time
-CMAKE_PREFIX_PATH = '@CMAKE_PREFIX_PATH_AS_IS@'.split(';')
-setup_dir = '@SETUP_DIR@'
-if setup_dir and setup_dir not in CMAKE_PREFIX_PATH:
- CMAKE_PREFIX_PATH.insert(0, setup_dir)
-CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
-
CATKIN_MARKER_FILE = '.catkin'
system = platform.system()
@@ -256,6 +249,14 @@ if __name__ == '__main__':
print(e, file=sys.stderr)
exit(1)
+ # environment at generation time
+ CMAKE_PREFIX_PATH = '@CMAKE_PREFIX_PATH_AS_IS@'.split(';')
+ # prepend current workspace if not already part of CPP
+ base_path = os.path.dirname(__file__)
+ if base_path not in CMAKE_PREFIX_PATH:
+ CMAKE_PREFIX_PATH.insert(0, base_path)
+ CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
+
environ = dict(os.environ)
lines = []
if not args.extend:
diff --git a/cmake/templates/env.sh.in b/cmake/templates/env.sh.in
index 5d04650..ad259ea 100755
--- a/cmake/templates/env.sh.in
+++ b/cmake/templates/env.sh.in
@@ -5,7 +5,9 @@ if [ $# -eq 0 ] ; then
/bin/echo "Usage: env.sh COMMANDS"
/bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
exit 1
-else
- . "@SETUP_DIR@/@SETUP_FILENAME@.sh"
- exec "$@"
fi
+
+# source @SETUP_FILENAME@.sh from same directory as this file
+CATKIN_SETUP_DIR=$(cd `dirname $0`;pwd)
+. "$CATKIN_SETUP_DIR/@SETUP_FILENAME@.sh"
+exec "$@"
diff --git a/cmake/templates/setup.bash.in b/cmake/templates/setup.bash.in
index 078fd13..97e9e70 100644
--- a/cmake/templates/setup.bash.in
+++ b/cmake/templates/setup.bash.in
@@ -2,4 +2,7 @@
# generated from catkin/cmake/templates/setup.bash.in
CATKIN_SHELL=bash
-. "@SETUP_DIR@/setup.sh"
+
+# source setup.sh from same directory as this file
+CATKIN_SETUP_DIR=$(cd `dirname ${BASH_SOURCE[0]}`;pwd)
+. "$CATKIN_SETUP_DIR/setup.sh"
diff --git a/cmake/templates/setup.sh.in b/cmake/templates/setup.sh.in
index fa28dfb..66b91ca 100644
--- a/cmake/templates/setup.sh.in
+++ b/cmake/templates/setup.sh.in
@@ -6,7 +6,10 @@
# Supported command line options:
# --extend: skips the undoing of changes from a previously sourced setup file
-_SETUP_UTIL="@SETUP_DIR@/_setup_util.py"
+# since this file is sourced either use the provided CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${CATKIN_SETUP_DIR:=@SETUP_DIR@}
+_SETUP_UTIL="$CATKIN_SETUP_DIR/_setup_util.py"
if [ ! -f "$_SETUP_UTIL" ]; then
echo "Missing Python script: $_SETUP_UTIL"
diff --git a/cmake/templates/setup.zsh.in b/cmake/templates/setup.zsh.in
index 220d1fb..5e681e4 100644
--- a/cmake/templates/setup.zsh.in
+++ b/cmake/templates/setup.zsh.in
@@ -2,6 +2,7 @@
# generated from catkin/cmake/templates/setup.zsh.in
CATKIN_SHELL=zsh
+CATKIN_SETUP_DIR=$(cd `dirname $0`;pwd)
emulate sh # emulate POSIX
-. "@SETUP_DIR@/setup.sh"
+. "$CATKIN_SETUP_DIR/setup.sh"
emulate zsh # back to zsh mode
--
1.8.1.6
From 198c7b8afafc4e92ed912959e299935b301ac434 Mon Sep 17 00:00:00 2001
From: Dirk Thomas <dthomas@osrfoundation.org>
Date: Thu, 25 Jul 2013 17:02:08 -0700
Subject: [PATCH 3/4] update exported include dirs in generated cmake config
files to not contain absolute paths (#490)
---
cmake/catkin_package.cmake | 2 +-
cmake/templates/pkgConfig.cmake.in | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
index 574bce9..a543864 100644
--- a/cmake/catkin_package.cmake
+++ b/cmake/catkin_package.cmake
@@ -434,7 +434,7 @@ function(_catkin_package)
# absolute path to include dir under install prefix if any include dir is set
set(PROJECT_ABSOLUTE_INCLUDE_DIRS "")
if(NOT "${PROJECT_INCLUDE_DIRS}" STREQUAL "")
- set(PROJECT_ABSOLUTE_INCLUDE_DIRS ${PKG_INCLUDE_PREFIX}/include)
+ set(PROJECT_ABSOLUTE_INCLUDE_DIRS "${CATKIN_GLOBAL_INCLUDE_DESTINATION}")
endif()
if(PROJECT_DEPENDENCIES_INCLUDE_DIRS)
list(APPEND PROJECT_ABSOLUTE_INCLUDE_DIRS ${PROJECT_DEPENDENCIES_INCLUDE_DIRS})
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
index dce3158..334e5f2 100644
--- a/cmake/templates/pkgConfig.cmake.in
+++ b/cmake/templates/pkgConfig.cmake.in
@@ -89,8 +89,11 @@ if(NOT "@PROJECT_ABSOLUTE_INCLUDE_DIRS@" STREQUAL "")
foreach(idir ${absolute_include_dirs})
if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
set(include ${idir})
- elseif(IS_DIRECTORY @PKG_INCLUDE_PREFIX@/${idir})
- set(include @PKG_INCLUDE_PREFIX@/${idir})
+ elseif("${idir}" STREQUAL "${CATKIN_GLOBAL_INCLUDE_DESTINATION}")
+ get_filename_component(include "${@PROJECT_NAME@_DIR}/../../../${CATKIN_GLOBAL_INCLUDE_DESTINATION}" ABSOLUTE)
+ if(NOT IS_DIRECTORY ${include})
+ message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does not exist in '${include}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
+ endif()
else()
message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '@PKG_INCLUDE_PREFIX@/${idir}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
endif()
--
1.8.1.6
From 8067802506d0b66926b665ee301ca6ce77ab3deb Mon Sep 17 00:00:00 2001
From: Dirk Thomas <dthomas@osrfoundation.org>
Date: Thu, 25 Jul 2013 17:06:48 -0700
Subject: [PATCH 4/4] update catkin_make_isolated to support installation with
DESTDIR (#490)
---
bin/catkin_make_isolated | 5 +++-
python/catkin/builder.py | 63 +++++++++++++++++++++++++++++++++---------------
2 files changed, 47 insertions(+), 21 deletions(-)
diff --git a/bin/catkin_make_isolated b/bin/catkin_make_isolated
index 25ed5db..6ea7d4d 100755
--- a/bin/catkin_make_isolated
+++ b/bin/catkin_make_isolated
@@ -107,6 +107,8 @@ def main():
if not sys.stdout.isatty():
opts.no_color = True
+ destdir = os.environ['DESTDIR'] if 'DESTDIR' in os.environ else None
+
build_workspace_isolated(
workspace=opts.workspace or '.',
sourcespace=opts.source,
@@ -122,7 +124,8 @@ def main():
cmake_args=cmake_args,
make_args=opts.make_args,
catkin_make_args=opts.catkin_make_args,
- continue_from_pkg=opts.from_package is not None
+ continue_from_pkg=opts.from_package is not None,
+ destdir=destdir
)
if __name__ == '__main__':
diff --git a/python/catkin/builder.py b/python/catkin/builder.py
index b157d6e..932e720 100644
--- a/python/catkin/builder.py
+++ b/python/catkin/builder.py
@@ -163,18 +163,23 @@ def print_command_banner(cmd, cwd, color):
print('####')
-def run_command_colorized(cmd, cwd, quiet=False):
- run_command(cmd, cwd, quiet=quiet, colorize=True)
+def run_command_colorized(cmd, cwd, quiet=False, add_env=None):
+ run_command(cmd, cwd, quiet=quiet, colorize=True, add_env=add_env)
-def run_command(cmd, cwd, quiet=False, colorize=False):
+def run_command(cmd, cwd, quiet=False, colorize=False, add_env=None):
capture = (quiet or colorize)
stdout_pipe = subprocess.PIPE if capture else None
stderr_pipe = subprocess.STDOUT if capture else None
+ env = None
+ if add_env:
+ env = copy.copy(os.environ)
+ env.update(add_env)
try:
proc = subprocess.Popen(
cmd, cwd=cwd, shell=False,
- stdout=stdout_pipe, stderr=stderr_pipe
+ stdout=stdout_pipe, stderr=stderr_pipe,
+ env=env
)
except OSError as e:
raise OSError("Failed command '%s': %s" % (cmd, e))
@@ -213,10 +218,11 @@ def _check_build_dir(name, workspace, buildspace):
return package_build_dir
-def isolation_print_command(cmd, path=None):
+def isolation_print_command(cmd, path=None, add_env=None):
cprint(
blue_arrow + " " + sanitize(cmd) + "@|" +
- (" @!@{kf}in@| '@!" + sanitize(path) + "@|'" if path else '')
+ (" @!@{kf}in@| '@!" + sanitize(path) + "@|'" if path else '') +
+ (" @!@{kf}with@| '@!" + ' '.join(['%s=%s' % (k, v) for k, v in add_env.items()]) + "@|'" if add_env else '')
)
@@ -280,7 +286,8 @@ def extract_jobs_flags(mflags):
def build_catkin_package(
path, package,
workspace, buildspace, develspace, installspace,
- install, force_cmake, quiet, last_env, cmake_args, make_args
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
+ destdir=None
):
cprint(
"Processing @{cf}catkin@| package: '@!@{bf}" +
@@ -324,11 +331,12 @@ def build_catkin_package(
'-DCMAKE_INSTALL_PREFIX=' + installspace
]
cmake_cmd.extend(cmake_args)
- isolation_print_command(' '.join(cmake_cmd), build_dir)
+ add_env = get_additional_environment(install, destdir, installspace)
+ isolation_print_command(' '.join(cmake_cmd), build_dir, add_env=add_env)
if last_env is not None:
cmake_cmd = [last_env] + cmake_cmd
try:
- run_command_colorized(cmake_cmd, build_dir, quiet)
+ run_command_colorized(cmake_cmd, build_dir, quiet, add_env=add_env)
except subprocess.CalledProcessError as e:
if os.path.exists(makefile):
# remove Makefile to force CMake invocation next time
@@ -338,11 +346,12 @@ def build_catkin_package(
print('Makefile exists, skipping explicit cmake invocation...')
# Check to see if cmake needs to be run via make
make_check_cmake_cmd = ['make', 'cmake_check_build_system']
- isolation_print_command(' '.join(make_check_cmake_cmd), build_dir)
+ add_env = get_additional_environment(install, destdir, installspace)
+ isolation_print_command(' '.join(make_check_cmake_cmd), build_dir, add_env=add_env)
if last_env is not None:
make_check_cmake_cmd = [last_env] + make_check_cmake_cmd
run_command_colorized(
- make_check_cmake_cmd, build_dir, quiet
+ make_check_cmake_cmd, build_dir, quiet, add_env=add_env
)
# Run make
@@ -372,10 +381,18 @@ def has_make_target(path, target):
return target in targets
+def get_additional_environment(install, destdir, installspace):
+ add_env = {}
+ if install and destdir:
+ add_env['CATKIN_SETUP_DIR'] = os.path.join(destdir, installspace[1:])
+ return add_env
+
+
def build_cmake_package(
path, package,
workspace, buildspace, develspace, installspace,
- install, force_cmake, quiet, last_env, cmake_args, make_args
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
+ destdir=None
):
# Notify the user that we are processing a plain cmake package
cprint(
@@ -496,19 +513,21 @@ def build_package(
path, package,
workspace, buildspace, develspace, installspace,
install, force_cmake, quiet, last_env, cmake_args, make_args, catkin_make_args,
+ destdir=None,
number=None, of=None
):
if platform.system() in ['Linux', 'Darwin']:
status_msg = '{package_name} [{number} of {total}]'.format(package_name=package.name, number=number, total=of)
sys.stdout.write("\x1b]2;" + status_msg + "\x07")
cprint('@!@{gf}==>@| ', end='')
- new_last_env = get_new_env(package, develspace, installspace, install, last_env)
+ new_last_env = get_new_env(package, develspace, installspace, install, last_env, destdir)
build_type = _get_build_type(package)
if build_type == 'catkin':
build_catkin_package(
path, package,
workspace, buildspace, develspace, installspace,
- install, force_cmake, quiet, last_env, cmake_args, make_args + catkin_make_args
+ install, force_cmake, quiet, last_env, cmake_args, make_args + catkin_make_args,
+ destdir=destdir
)
if not os.path.exists(new_last_env):
raise RuntimeError(
@@ -521,7 +540,8 @@ def build_package(
build_cmake_package(
path, package,
workspace, buildspace, develspace, installspace,
- install, force_cmake, quiet, last_env, cmake_args, make_args
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
+ destdir=destdir
)
else:
sys.exit('Can not build package with unknown build_type')
@@ -534,7 +554,7 @@ def build_package(
return new_last_env
-def get_new_env(package, develspace, installspace, install, last_env):
+def get_new_env(package, develspace, installspace, install, last_env, destdir=None):
new_env = None
build_type = _get_build_type(package)
if build_type in ['catkin', 'cmake']:
@@ -542,6 +562,8 @@ def get_new_env(package, develspace, installspace, install, last_env):
installspace if install else develspace,
'env.sh'
)
+ if destdir is not None:
+ new_env = os.path.join(destdir, new_env[1:])
return new_env
@@ -572,7 +594,8 @@ def build_workspace_isolated(
cmake_args=None,
make_args=None,
catkin_make_args=None,
- continue_from_pkg=False
+ continue_from_pkg=False,
+ destdir=None
):
'''
Runs ``cmake``, ``make`` and optionally ``make install`` for all
@@ -603,6 +626,7 @@ def build_workspace_isolated(
packages, ``[str]``
:param continue_from_pkg: indicates whether or not cmi should continue
when a package is reached, ``bool``
+ :param destdir: define DESTDIR for cmake/invocation, ``string``
'''
if not colorize:
disable_ANSI_colors()
@@ -738,6 +762,7 @@ def build_workspace_isolated(
workspace, buildspace, pkg_develspace, installspace,
install, force_cmake or (install_toggled and is_cmake_package),
quiet, last_env, cmake_args, make_args, catkin_make_args,
+ destdir=destdir,
number=index + 1, of=len(ordered_packages)
)
except subprocess.CalledProcessError as e:
@@ -758,7 +783,7 @@ def build_workspace_isolated(
sys.exit('Command failed, exiting.')
else:
cprint("Skipping package: '@!@{bf}" + package.name + "@|'")
- last_env = get_new_env(package, pkg_develspace, installspace, install, last_env)
+ last_env = get_new_env(package, pkg_develspace, installspace, install, last_env, destdir)
# Provide a top level devel space environment setup script
if not os.path.exists(develspace):
@@ -793,7 +818,6 @@ def build_workspace_isolated(
'CATKIN_GLOBAL_LIB_DESTINATION': 'lib',
'CMAKE_PREFIX_PATH_AS_IS': ';'.join(os.environ['CMAKE_PREFIX_PATH'].split(os.pathsep)),
'PYTHON_INSTALL_DIR': get_python_install_dir(),
- 'SETUP_DIR': '',
}
with open(generated_setup_util_py, 'w') as f:
f.write(configure_file(os.path.join(get_cmake_path(), 'templates', '_setup_util.py.in'), variables))
@@ -802,7 +826,6 @@ def build_workspace_isolated(
sys.exit("Unable to process CMAKE_PREFIX_PATH from environment. Cannot generate environment files.")
variables = {
- 'SETUP_DIR': develspace,
'SETUP_FILENAME': 'setup'
}
with open(generated_env_sh, 'w') as f:
--
1.8.1.6

View File

@ -3,15 +3,12 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
PR = "r1"
DEPENDS = "cmake python-empy python-catkin-pkg python-empy-native python-catkin-pkg-native"
SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
SRC_URI[md5sum] = "1c30ac4fcc82ce2aedf610ea972ab4d2"
SRC_URI[sha256sum] = "2494dbe3446fe94a55f57c74260e072f97d72944d89610fe4994dbc79cf1a561"
SRC_URI[md5sum] = "ea720dbabb693235f7377165aec55381"
SRC_URI[sha256sum] = "7f45a2889c80754f60995225f0378733bfc013a0549f25c98415b475eba560ae"
SRC_URI += "file://0001-modify-logic-of-sourcing-env-hooks-to-provide-contex.patch"
SRC_URI += "file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch"
inherit catkin