{
  "@context": "https://spdx.org/rdf/3.0.1/spdx-context.jsonld",
  "@graph": [
    {
      "@id": "_:creationInfo_1",
      "type": "CreationInfo",
      "specVersion": "3.0.1",
      "createdBy": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3"
      ],
      "created": "2026-07-04T02:24:06Z"
    },
    {
      "@id": "_:creationInfo_0",
      "type": "CreationInfo",
      "specVersion": "3.0.1",
      "createdBy": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd0"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1"
      ],
      "created": "2026-07-04T02:24:06Z"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2158",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2159"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2101",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102082",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28042",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28013",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95988",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd237"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95982",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102080",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95986",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd237"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95982",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28044",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28013",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2161",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2159"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2101",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102077",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95982"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102079",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2101"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102078",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28013"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2159",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "Python-2.0",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "MIT",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd237",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "Apache-2.0",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2160",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102081",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95987",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28043",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102076",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd102081",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Pytest plugin for measuring coverage",
      "software_packageVersion": "0:4.1.0-2.oe2403sp4",
      "software_homePage": "https://pypi.org/project/pytest-cov/",
      "description": "This plugin produces coverage reports. Compared to just using coverage run this plugin does some extras:\n* Subprocess support: you can fork or run stuff in a subprocess and will get covered without any fuss.\n* Xdist support: you can use all of pytest-xdist’s features and still get coverage.\n* Consistent pytest behavior. If you run coverage run -m pytest you will have slightly different\n  sys.path(CWD will be in it, unlike when running pytest).\n\nAll features offered by the coverage package should work, either through pytest-cov’s command line options\nor through coverage’s config file.",
      "name": "python3-pytest-cov",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-pytest-cov@4.1.0-2.oe2403sp4?arch=noarch&epoch=0&upstream=python-pytest-cov-4.1.0-2.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28013",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd28043",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Simple powerful testing with Python",
      "software_packageVersion": "0:7.4.4-1.oe2403sp4",
      "software_homePage": "https://pytest.org",
      "description": "py.test provides simple, yet powerful testing for Python.",
      "name": "python3-pytest",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-pytest@7.4.4-1.oe2403sp4?arch=noarch&epoch=0&upstream=pytest-7.4.4-1.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2101",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2160",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Interpreter of the Python3 programming language",
      "software_packageVersion": "0:3.11.6-32.oe2403sp4",
      "software_homePage": "https://www.python.org/",
      "description": "Python combines remarkable power with very clear syntax. It has modules,\nclasses, exceptions, very high level dynamic data types, and dynamic\ntyping. There are interfaces to many system calls and libraries, as well\nas to various windowing systems. New built-in modules are easily written\nin C or C++ (or other languages, depending on the chosen implementation).\nPython is also usable as an extension language for applications written\nin other languages that need easy-to-use scripting or automation interfaces.\n\nThis package Provides python version 3.",
      "name": "python3",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3@3.11.6-32.oe2403sp4?arch=x86_64&epoch=0&upstream=python3-3.11.6-32.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95982",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd95987",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Code coverage measurement for Python 3",
      "software_packageVersion": "0:7.3.2-1.oe2403sp4",
      "software_homePage": "https://coverage.readthedocs.io/en/coverage-7.3.2/",
      "description": "Coverage.py is a tool for measuring code coverage of Python 3 programs. It monitors\nyour program, noting which parts of the code have been executed, then analyzes the\nsource to identify code that could have been executed but was not.",
      "name": "python3-coverage",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-coverage@7.3.2-1.oe2403sp4?arch=x86_64&epoch=0&upstream=python-coverage-7.3.2-1.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1",
      "type": "Tool",
      "name": "syft-[not provided]",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3",
      "type": "Tool",
      "name": "syft-[not provided]",
      "creationInfo": "_:creationInfo_1"
    }
  ]
}