From 514f90c3c4315b018c339836cc56146e8819de73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20A=C5=9F=C4=B1c=C4=B1?= Date: Wed, 22 Sep 2010 08:02:45 +0000 Subject: [PATCH] build: Generate a debug package for each sub-package This commit also changes the behavior when a sub-package does not contain any files. Such packages will not be built and a warning will be printed for each empty package. --- pisi/operations/build.py | 41 +++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/pisi/operations/build.py b/pisi/operations/build.py index e06e2352..e9e54e29 100644 --- a/pisi/operations/build.py +++ b/pisi/operations/build.py @@ -763,25 +763,19 @@ class Builder: return static_package_obj - def generate_debug_package_object(self): - debug_files = [] - for root, dirs, files in os.walk(self.pkg_debug_dir()): - for f in files: - if f.endswith(ctx.const.debug_file_suffix): - debug_files.append(util.join_path(root, f)) - - if not len(debug_files): - return None - + def generate_debug_package_object(self, package): debug_package_obj = pisi.specfile.Package() debug_package_obj.debug_package = True - debug_package_obj.name = self.spec.source.name + ctx.const.debug_name_suffix + debug_package_obj.name = package.name + ctx.const.debug_name_suffix # FIXME: find a better way to deal with the summary and description constants. - debug_package_obj.summary['en'] = u'Debug files for %s' % (self.spec.source.name) - debug_package_obj.description['en'] = u'Debug files for %s' % (self.spec.source.name) - debug_package_obj.partOf = self.spec.source.partOf - for f in debug_files: - debug_package_obj.files.append(pisi.specfile.Path(path=f[len(self.pkg_debug_dir()):], fileType="debug")) + debug_package_obj.summary['en'] = u'Debug files for %s' % (package.name) + debug_package_obj.description['en'] = u'Debug files for %s' % (package.name) + debug_package_obj.partOf = package.partOf + + for path_info in package.files: + path = util.join_path(ctx.const.debug_files_suffix, path_info.path) + debug_path_info = pisi.specfile.Path(path=path, fileType="debug") + debug_package_obj.files.append(debug_path_info) return debug_package_obj @@ -997,9 +991,14 @@ class Builder: self.spec.packages.append(obj) if ctx.config.values.build.generatedebug: - obj = self.generate_debug_package_object() - if obj: - self.spec.packages.append(obj) + debug_packages = [] + for package in self.spec.packages: + obj = self.generate_debug_package_object(package) + if obj: + debug_packages.append(obj) + + if debug_packages: + self.spec.packages.extend(debug_packages) self.new_packages = [] self.old_packages = [] @@ -1065,6 +1064,10 @@ class Builder: ctx.ui.info(_("Generating %s,") % ctx.const.files_xml) self.gen_files_xml(package) + if not self.files.list: + ctx.ui.warning(_("Ignoring empty package %s" % package.name)) + continue + ctx.ui.info(_("Generating %s,") % ctx.const.metadata_xml) self.gen_metadata_xml(package)