Skip to content

Commit c80e502

Browse files
Merge pull request #3682 from nexB/update-package-handlers
Update package handlers
2 parents ea8953b + 310fdeb commit c80e502

30 files changed

+232
-13679
lines changed

src/packagedcode/__init__.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from packagedcode import godeps
2929
from packagedcode import golang
3030
from packagedcode import haxe
31-
from packagedcode import jar_manifest
3231
from packagedcode import maven
3332
from packagedcode import misc
3433
from packagedcode import npm
@@ -84,6 +83,7 @@
8483
cran.CranDescriptionFileHandler,
8584

8685
debian_copyright.DebianCopyrightFileInPackageHandler,
86+
debian_copyright.StandaloneDebianCopyrightFileHandler,
8787
debian.DebianDscFileHandler,
8888

8989
debian.DebianControlFileInExtractedDebHandler,
@@ -216,13 +216,7 @@
216216

217217
debian.DebianInstalledFilelistHandler,
218218
debian.DebianInstalledMd5sumFilelistHandler,
219-
debian.DebianInstalledStatusDatabaseHandler,
220-
debian.DebianControlFileInSourceHandler,
221-
debian.DebianDscFileHandler,
222-
debian.DebianSourcePackageTarballHandler,
223-
debian.DebianSourcePackageMetadataTarballHandler,
224-
debian.DebianDebPackageHandler,
225-
debian_copyright.StandaloneDebianCopyrightFileHandler
219+
debian.DebianInstalledStatusDatabaseHandler
226220
]
227221

228222
if on_linux:

src/packagedcode/build.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def logger_debug(*args):
4747
)
4848

4949

50-
class AutotoolsConfigureHandler(models.DatafileHandler):
50+
class AutotoolsConfigureHandler(models.NonAssemblableDatafileHandler):
5151
datasource_id = 'autotools_configure'
5252
path_patterns = ('*/configure', '*/configure.ac',)
5353
default_package_type = 'autotools'
@@ -74,14 +74,6 @@ def parse(cls, location):
7474
version=version,
7575
)
7676

77-
@classmethod
78-
def assign_package_to_resources(cls, package, resource, codebase, package_adder):
79-
models.DatafileHandler.assign_package_to_parent_tree(
80-
package=package,
81-
resource=resource,
82-
codebase=codebase,
83-
package_adder=package_adder,
84-
)
8577

8678

8779
def check_rule_name_ending(rule_name, starlark_rule_types=('binary', 'library')):

src/packagedcode/debian.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,10 @@ def parse_debian_files_list(location, datasource_id, package_type):
582582
name, _, arch = filename.partition(':')
583583
qualifiers['arch'] = arch
584584
else:
585-
name = filename
585+
name = None
586+
# For DebianMd5sumFilelistInPackageHandler we cannot infer name
587+
if not name == "md5sums":
588+
name = filename
586589

587590
file_references = []
588591
with open(location) as info_file:
@@ -643,12 +646,14 @@ def build_package_data(debian_data, datasource_id, package_type='deb', distro=No
643646

644647
maintainer = debian_data.get('maintainer')
645648
if maintainer:
646-
party = models.Party(role='maintainer', name=maintainer)
649+
maintainer_name, maintainer_email = parse_debian_maintainers(maintainer)
650+
party = models.Party(role='maintainer', name=maintainer_name, email=maintainer_email)
647651
parties.append(party)
648652

649653
orig_maintainer = debian_data.get('original_maintainer')
650654
if orig_maintainer:
651-
party = models.Party(role='original_maintainer', name=orig_maintainer)
655+
maintainer_name, maintainer_email = parse_debian_maintainers(orig_maintainer)
656+
party = models.Party(role='maintainer', name=maintainer_name, email=maintainer_email)
652657
parties.append(party)
653658

654659
keywords = []
@@ -708,6 +713,26 @@ def build_package_data(debian_data, datasource_id, package_type='deb', distro=No
708713
)
709714

710715

716+
def parse_debian_maintainers(maintainer):
717+
"""
718+
Get name and email values from a debian maintainer string.
719+
720+
Example string:
721+
Debian systemd Maintainers <pkg-systemd-maintainers@lists.alioth.debian.org>
722+
"""
723+
email_wrappers = ["<", ">"]
724+
has_email = "@" in maintainer and all([
725+
True
726+
for char in email_wrappers
727+
if char in maintainer
728+
])
729+
if not has_email:
730+
return maintainer, None
731+
732+
name, _, email = maintainer.rpartition("<")
733+
return name.rstrip(" "), email.rstrip(">")
734+
735+
711736
def populate_debian_namespace(packages):
712737
"""
713738
For an iterable of debian `packages`, populate the

tests/formattedcode/data/cyclonedx/simple-icu-expected.json

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)