Hi Jeremias,
I have managed to get spdx.json
files merged into a single *.spdx
using the SPDXMerge tool. However, it does not work when I use your command to create a container. It only works when I run the python script outside of a container.
When running just the python scripts with the same input files it works.
torizon@training:~/sbom$ python SPDXMerge/spdxmerge/SPDXMerge.py --docpath /home/torizon/sbom/input/ --outpath /home/torizon/sbom/output/ --name debug-sbom --version 2.2 --mergetype 1 --author debug --email hello@world.com --docnamespace https://debug.com --filetype T
File /home/torizon/sbom/output/merged-SBoM-deep.spdx is generated
However when running the docker command which does not work.
torizon@training:~/sbom$ docker run --rm -v /home/torizon/sbom/input/:/code -v /home/torizon/sbom:/output -e DOCPATH=/code -e OUTPATH=/output -e NAME=debug-sbom -e MERGETYPE=1 -e AUTHOR=Debug -e EMAIL=hello@world.com -e DOCNAMESPACE=https://debug.com -e FILETYPE=T docker.io/philipssoftware/spdxmerge:v0.2.0
arguments:
- DOCPATH : /code
- OUTPATH : /output
- NAME : debug-sbom
- MERGETYPE : 1
- AUTHOR : Debug
- EMAIL : hello@world.com
- DOCNAMESPACE : https://debug.com
- FILETYPE : T
Traceback (most recent call last):
File "/app/spdxmerge/SPDXMerge.py", line 35, in <module>
main()
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/spdxmerge/SPDXMerge.py", line 28, in main
doc_list = read_docs(docpath)
^^^^^^^^^^^^^^^^^^
File "/app/spdxmerge/utils.py", line 9, in read_docs
doc, _error = parse_anything.parse_file(dir+"/"+file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/parse_anything.py", line 53, in parse_file
return p.parse(f)
^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonparser.py", line 30, in parse
return super(Parser, self).parse()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 1762, in parse
self.parse_packages(self.document_object.get("packages"))
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 1887, in parse_packages
self.parse_package(package, self.parse_relationship)
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 1165, in parse_package
self.parse_pkg_declared_license(package.get("licenseDeclared"))
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 1496, in parse_pkg_declared_license
license_object = self.replace_license(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 327, in replace_license
license_objects = list(
^^^^^
File "/usr/local/lib/python3.11/site-packages/spdx/parsers/jsonyamlxml.py", line 329, in <lambda>
lambda lic: lic.identifier == license_object.identifier,
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'identifier'
Any help would be much appreciated. Thank you