diff options
author | Benjamin Chrétien | 2014-06-04 20:23:07 +0200 |
---|---|---|
committer | Benjamin Chrétien | 2015-06-20 02:25:12 +0900 |
commit | a92a2f1d0d92c1332019d8b883d15f6fddda286d (patch) | |
tree | 6ffd2ef1c6b37d87de1ce8792b266bb84f8ca5ec | |
parent | 818605054b087dba3df68b156120e61cb70bab8a (diff) | |
download | aur-a92a2f1d0d92c1332019d8b883d15f6fddda286d.tar.gz |
ros-build-tools: more work on Python 3 support.
-rw-r--r-- | .SRCINFO | 2 | ||||
-rw-r--r-- | PKGBUILD | 2 | ||||
-rwxr-xr-x | import_catkin_packages.py | 25 |
3 files changed, 23 insertions, 6 deletions
@@ -26,7 +26,7 @@ pkgbase = ros-build-tools md5sums = d257f7f20384e894b0431ee61068aa96 md5sums = 563c9d1320a3a997db25d3087303dcfb md5sums = 8d6d7eb89a12c449497b209f1a06655b - md5sums = 5a0176cd0a668e728a9aefd80442d8b7 + md5sums = 54bcd1051cc6b1d38f034f21864475c5 md5sums = 07f5253eb3f8cb5295c32026a20ab6c0 pkgname = ros-build-tools @@ -41,5 +41,5 @@ md5sums=('ed01573e0ecc0f7ca451d7e2849cc5ee' 'd257f7f20384e894b0431ee61068aa96' '563c9d1320a3a997db25d3087303dcfb' '8d6d7eb89a12c449497b209f1a06655b' - '5a0176cd0a668e728a9aefd80442d8b7' + '54bcd1051cc6b1d38f034f21864475c5' '07f5253eb3f8cb5295c32026a20ab6c0') diff --git a/import_catkin_packages.py b/import_catkin_packages.py index c2f04832933d..252281aa9a7c 100755 --- a/import_catkin_packages.py +++ b/import_catkin_packages.py @@ -95,9 +95,13 @@ class PackageBase(object): else: fixed_dependencies.add(dep) - # Fix some possibly missing Python 2 package conflicts - fixed_dependencies = [self._ensure_python2_dependency(dependency) - for dependency in fixed_dependencies] + # Fix some possibly missing Python 2/3 package conflicts + if self.distro.python_major() == "2": + fixed_dependencies = [self._ensure_python2_dependency(dependency) + for dependency in fixed_dependencies] + elif self.distro.python_major() == "3": + fixed_dependencies = [self._ensure_python3_dependency(dependency) + for dependency in fixed_dependencies] return fixed_dependencies fixed_build_dep = _fix_dependencies_with_map(build_dep) @@ -132,7 +136,14 @@ class PackageBase(object): return name.replace('_', '-') def _ensure_python2_dependency(self, dependency): - return dependency.replace('python-', 'python2-') + # python ---> python2 + # python-foo ---> python2-foo + return re.sub(r'python(?!2)([a-zA-Z0-9\-]*)', r'python2\1', dependency) + + def _ensure_python3_dependency(self, dependency): + # python2 ---> python + # python2-foo ---> python-foo + return re.sub(r'python2([a-zA-Z0-9\-]*)', r'python\1', dependency) def _get_package_xml_url(self, url, name, version): if url.find('github'): @@ -411,6 +422,12 @@ class DistroDescription(object): def meta_package_package_names(self, name): return self._distro['repositories'][name]['release']['packages'] + def python_major(self): + """ + Return the major version number of Python. + """ + return self.python_version.split('.')[0] + def _is_meta_package(self, name): if self._distro['repositories'].get(name) != None: if self._distro['repositories'][name].get('release') != None: |