diff options
Diffstat (limited to 'dev-python/catkin_pkg/files')
| -rw-r--r-- | dev-python/catkin_pkg/files/catkin_prefix2.patch | 29 | ||||
| -rw-r--r-- | dev-python/catkin_pkg/files/infinite_loop3.patch | 27 | ||||
| -rw-r--r-- | dev-python/catkin_pkg/files/infinite_loop4.patch | 27 | ||||
| -rw-r--r-- | dev-python/catkin_pkg/files/ros_packages.patch | 13 |
4 files changed, 96 insertions, 0 deletions
diff --git a/dev-python/catkin_pkg/files/catkin_prefix2.patch b/dev-python/catkin_pkg/files/catkin_prefix2.patch new file mode 100644 index 000000000000..761894e83b1c --- /dev/null +++ b/dev-python/catkin_pkg/files/catkin_prefix2.patch @@ -0,0 +1,29 @@ +Allow CATKIN_PREFIX_PATH to work as CMAKE_PREFIX_PATH: +When building with SYSROOT!=/, CMAKE_PREFIX_PATH is the same as with SYSROOT=/ +but we need to find packages in SYSROOT. + +Index: catkin_pkg-0.4.6/src/catkin_pkg/workspaces.py +=================================================================== +--- catkin_pkg-0.4.6.orig/src/catkin_pkg/workspaces.py ++++ catkin_pkg-0.4.6/src/catkin_pkg/workspaces.py +@@ -41,16 +41,17 @@ CATKIN_WORKSPACE_MARKER_FILE = '.catkin_ + + def get_spaces(paths=None): + """ +- Return a list of spaces based on the CMAKE_PREFIX_PATH or passed in list of workspaces. ++ Return a list of spaces based on the CMAKE_PREFIX_PATH/CATKIN_PREFIX_PATH or passed in list of workspaces. + + It resolves the source space for each devel space and ignores non-catkin paths. + :param paths_to_order: list of paths + :param prefix_paths: list of prefixes, must not end with '/' + """ + if paths is None: +- if 'CMAKE_PREFIX_PATH' not in os.environ: +- raise RuntimeError('Neither the environment variable CMAKE_PREFIX_PATH is set nor was a list of paths passed.') ++ if 'CMAKE_PREFIX_PATH' not in os.environ and 'CATKIN_PREFIX_PATH' not in os.environ: ++ raise RuntimeError('None of the environment variables CMAKE_PREFIX_PATH or CATKIN_PREFIX_PATH are set nor was a list of paths passed.') + paths = os.environ['CMAKE_PREFIX_PATH'].split(os.pathsep) if os.environ['CMAKE_PREFIX_PATH'] else [] ++ paths += os.environ['CATKIN_PREFIX_PATH'].split(os.pathsep) if os.environ['CATKIN_PREFIX_PATH'] else [] + + spaces = [] + for path in paths: diff --git a/dev-python/catkin_pkg/files/infinite_loop3.patch b/dev-python/catkin_pkg/files/infinite_loop3.patch new file mode 100644 index 000000000000..e00fb93f5135 --- /dev/null +++ b/dev-python/catkin_pkg/files/infinite_loop3.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/show_bug.cgi?id=612860 +By Tim Rakowski +We os.walk /usr with followlinks=True, but at least nodejs contains a "recursive" link in /usr/include/node + +Index: catkin_pkg-0.4.6/src/catkin_pkg/packages.py +=================================================================== +--- catkin_pkg-0.4.6.orig/src/catkin_pkg/packages.py ++++ catkin_pkg-0.4.6/src/catkin_pkg/packages.py +@@ -57,7 +57,9 @@ def find_package_paths(basepath, exclude + """ + paths = [] + real_exclude_paths = [os.path.realpath(p) for p in exclude_paths] if exclude_paths is not None else [] ++ visited = set() + for dirpath, dirnames, filenames in os.walk(basepath, followlinks=True): ++ visited.add(dirpath) + if 'AMENT_IGNORE' in filenames or \ + 'CATKIN_IGNORE' in filenames or \ + 'COLCON_IGNORE' in filenames or \ +@@ -70,7 +72,7 @@ def find_package_paths(basepath, exclude + del dirnames[:] + continue + # filter out hidden directories in-place +- dirnames[:] = [d for d in dirnames if not d.startswith('.')] ++ dirnames[:] = [d for d in dirnames if not d.startswith('.') and not os.path.realpath(os.path.join(dirpath, d)) in visited] + return paths + + diff --git a/dev-python/catkin_pkg/files/infinite_loop4.patch b/dev-python/catkin_pkg/files/infinite_loop4.patch new file mode 100644 index 000000000000..affb67bb8367 --- /dev/null +++ b/dev-python/catkin_pkg/files/infinite_loop4.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/show_bug.cgi?id=612860 +By Tim Rakowski +We os.walk /usr with followlinks=True, but at least nodejs contains a "recursive" link in /usr/include/node + +Index: catkin_pkg-0.4.20/src/catkin_pkg/packages.py +=================================================================== +--- catkin_pkg-0.4.20.orig/src/catkin_pkg/packages.py ++++ catkin_pkg-0.4.20/src/catkin_pkg/packages.py +@@ -57,7 +57,9 @@ def find_package_paths(basepath, exclude + """ + paths = [] + real_exclude_paths = [os.path.realpath(p) for p in exclude_paths] if exclude_paths is not None else [] ++ visited = set() + for dirpath, dirnames, filenames in os.walk(basepath, followlinks=True): ++ visited.add(dirpath) + if set(dirnames + filenames) & {'AMENT_IGNORE', 'CATKIN_IGNORE', 'COLCON_IGNORE'} or \ + os.path.realpath(dirpath) in real_exclude_paths or \ + (exclude_subspaces and '.catkin' in filenames): +@@ -68,7 +70,7 @@ def find_package_paths(basepath, exclude + del dirnames[:] + continue + # filter out hidden directories in-place +- dirnames[:] = [d for d in dirnames if not d.startswith('.')] ++ dirnames[:] = [d for d in dirnames if not d.startswith('.') and not os.path.realpath(os.path.join(dirpath, d)) in visited] + return paths + + diff --git a/dev-python/catkin_pkg/files/ros_packages.patch b/dev-python/catkin_pkg/files/ros_packages.patch new file mode 100644 index 000000000000..06933d69a9fa --- /dev/null +++ b/dev-python/catkin_pkg/files/ros_packages.patch @@ -0,0 +1,13 @@ +Index: catkin_pkg-0.3.1/src/catkin_pkg/packages.py +=================================================================== +--- catkin_pkg-0.3.1.orig/src/catkin_pkg/packages.py ++++ catkin_pkg-0.3.1/src/catkin_pkg/packages.py +@@ -59,7 +59,7 @@ def find_package_paths(basepath, exclude + del dirnames[:] + continue + elif PACKAGE_MANIFEST_FILENAME in filenames: +- paths.append(os.path.relpath(dirpath, basepath)) ++ paths.append(os.path.relpath(dirpath.replace('ros_packages/', ''), basepath)) + del dirnames[:] + continue + for dirname in dirnames: |
