]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnf sbom: handle arch absence 14698/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 20 Sep 2024 16:41:58 +0000 (18:41 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 23 Sep 2024 10:23:24 +0000 (12:23 +0200)
builder-support/helpers/generate-sbom-dnf.py

index c90025ec9a816e400bdad1771777e65ec5d1acf5..621990c646643ad3aa8d9b2dc15bc267592102fb 100755 (executable)
@@ -45,9 +45,11 @@ def addDependencyToSBOM(sbom, appInfos, pkg):
     bomRef = 'lib:' + pkg.name
     component = { 'name': pkg.name, 'bom-ref': bomRef, 'type': 'library'}
     if pkg.release:
-        component['version'] = (pkg.version if pkg.epoch == 0 else str(pkg.epoch) + ':' + pkg.version) + '-' + pkg.release + '.' + pkg.arch
+        component['version'] = (pkg.version if pkg.epoch == 0 else str(pkg.epoch) + ':' + pkg.version) + '-' + pkg.release
     else:
-        component['version'] = (pkg.version if pkg.epoch == 0 else str(pkg.epoch) + ':' + pkg.version) + '.' + pkg.arch
+        component['version'] = (pkg.version if pkg.epoch == 0 else str(pkg.epoch) + ':' + pkg.version)
+    if hasattr(pkg, 'arch'):
+        component['version'] += '.' + pkg.arch
     if hasattr(pkg, 'vendor') and pkg.vendor is not None:
         component['supplier'] = {'name': pkg.vendor}
     if hasattr(pkg, 'publisher') and pkg.publisher is not None:
@@ -134,9 +136,12 @@ def generateSBOM(packageName, additionalDeps):
     component = { 'name': appName, 'bom-ref': 'pkg:' + appName, 'type': 'application'}
 
     if appInfos.release:
-        component['version'] = (appInfos.version if appInfos.epoch == 0 else str(appInfos.epoch) + ':' + appInfos.version) + '-' + appInfos.release + '.' + appInfos.arch
+        component['version'] = (appInfos.version if appInfos.epoch == 0 else str(appInfos.epoch) + ':' + appInfos.version) + '-' + appInfos.release
     else:
-        component['version'] = (appInfos.version if appInfos.epoch == 0 else str(appInfos.epoch) + ':' + appInfos.version) + '.' + appInfos.arch
+        component['version'] = (appInfos.version if appInfos.epoch == 0 else str(appInfos.epoch) + ':' + appInfos.version)
+
+    if hasattr(appInfos, 'arch'):
+        component['version'] += '.' + appInfos.arch
 
     component['supplier'] = {'name': appInfos.vendor if appInfos.vendor != '<NULL>' else 'PowerDNS.COM BV', 'url': ['https://www.powerdns.com']}
     component['licenses'] = [{'license': {'id': licenseToSPDXIdentifier(appInfos.license)}}]