From 9e2de64bf1aa286087c70ddad658b0d57339d1fd Mon Sep 17 00:00:00 2001 From: Frank Kusters Date: Thu, 15 Jun 2023 17:55:32 +0200 Subject: [PATCH] Add support for architecture independent debian packages The `Architecture` field is set to `all` if a package has `metapackage` or `architecture_independent` in its `package.xml`. --- bloom/generators/debian/generator.py | 5 +++++ bloom/generators/debian/templates/ament_cmake/control.em | 2 +- bloom/generators/debian/templates/ament_python/control.em | 2 +- bloom/generators/debian/templates/catkin/control.em | 2 +- bloom/generators/debian/templates/cmake/control.em | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bloom/generators/debian/generator.py b/bloom/generators/debian/generator.py index fe629c8d..5a89b7a2 100644 --- a/bloom/generators/debian/generator.py +++ b/bloom/generators/debian/generator.py @@ -342,6 +342,11 @@ def generate_substitutions_from_package( data['format'] = 'native' if native else 'quilt' # Package name data['Package'] = sanitize_package_name(package.name) + # Architecture + exported_tags = [e.tagname for e in package.exports] + architecture_independent = 'metapackage' in exported_tags or \ + 'architecture_independent' in exported_tags + data['Architecture'] = 'all' if architecture_independent else 'any' # Installation prefix data['InstallationPrefix'] = installation_prefix # Resolve dependencies diff --git a/bloom/generators/debian/templates/ament_cmake/control.em b/bloom/generators/debian/templates/ament_cmake/control.em index 6d7b65c3..4459a97a 100644 --- a/bloom/generators/debian/templates/ament_cmake/control.em +++ b/bloom/generators/debian/templates/ament_cmake/control.em @@ -7,7 +7,7 @@ Homepage: @(Homepage) Standards-Version: 3.9.2 Package: @(Package) -Architecture: any +Architecture: @(Architecture) Depends: ${shlibs:Depends}, ${misc:Depends}, @(', '.join(Depends)) @[if Conflicts]Conflicts: @(', '.join(Conflicts))@\n@[end if]@ @[if Replaces]Replaces: @(', '.join(Replaces))@\n@[end if]@ diff --git a/bloom/generators/debian/templates/ament_python/control.em b/bloom/generators/debian/templates/ament_python/control.em index bd232d2c..b3b54d69 100644 --- a/bloom/generators/debian/templates/ament_python/control.em +++ b/bloom/generators/debian/templates/ament_python/control.em @@ -7,7 +7,7 @@ Homepage: @(Homepage) Standards-Version: 3.9.2 Package: @(Package) -Architecture: any +Architecture: @(Architecture) Depends: ${python3:Depends}, ${misc:Depends}, @(', '.join(Depends)) @[if Conflicts]Conflicts: @(', '.join(Conflicts))@\n@[end if]@ @[if Replaces]Replaces: @(', '.join(Replaces))@\n@[end if]@ diff --git a/bloom/generators/debian/templates/catkin/control.em b/bloom/generators/debian/templates/catkin/control.em index 6d7b65c3..4459a97a 100644 --- a/bloom/generators/debian/templates/catkin/control.em +++ b/bloom/generators/debian/templates/catkin/control.em @@ -7,7 +7,7 @@ Homepage: @(Homepage) Standards-Version: 3.9.2 Package: @(Package) -Architecture: any +Architecture: @(Architecture) Depends: ${shlibs:Depends}, ${misc:Depends}, @(', '.join(Depends)) @[if Conflicts]Conflicts: @(', '.join(Conflicts))@\n@[end if]@ @[if Replaces]Replaces: @(', '.join(Replaces))@\n@[end if]@ diff --git a/bloom/generators/debian/templates/cmake/control.em b/bloom/generators/debian/templates/cmake/control.em index 6d7b65c3..4459a97a 100644 --- a/bloom/generators/debian/templates/cmake/control.em +++ b/bloom/generators/debian/templates/cmake/control.em @@ -7,7 +7,7 @@ Homepage: @(Homepage) Standards-Version: 3.9.2 Package: @(Package) -Architecture: any +Architecture: @(Architecture) Depends: ${shlibs:Depends}, ${misc:Depends}, @(', '.join(Depends)) @[if Conflicts]Conflicts: @(', '.join(Conflicts))@\n@[end if]@ @[if Replaces]Replaces: @(', '.join(Replaces))@\n@[end if]@