summaryrefslogtreecommitdiff
path: root/dev-python/catkin_pkg/files
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/catkin_pkg/files')
-rw-r--r--dev-python/catkin_pkg/files/catkin_prefix2.patch29
-rw-r--r--dev-python/catkin_pkg/files/infinite_loop3.patch27
-rw-r--r--dev-python/catkin_pkg/files/infinite_loop4.patch27
-rw-r--r--dev-python/catkin_pkg/files/ros_packages.patch13
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: