{
  "@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/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd2"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd3"
      ],
      "created": "2026-07-04T06:27:27Z"
    },
    {
      "@id": "_:creationInfo_0",
      "type": "CreationInfo",
      "specVersion": "3.0.1",
      "createdBy": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd0"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd1"
      ],
      "created": "2026-07-04T06:27:27Z"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3443",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3444"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3432",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3448",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3449"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3430",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3445",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3446"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3430",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3440",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3441"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3432",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3431",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3432"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3430",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3444",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "ASL 2.0 or LGPLv2+",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3449",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "GPLv3+",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3441",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "ASL 2.0 or LGPLv2+",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3446",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "GPLv3+",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3442",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3447",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3430",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3447",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Python modules for Ceph iSCSI gateway configuration management",
      "software_packageVersion": "0:3.6-1.oe2403sp4",
      "software_homePage": "https://github.com/ceph/ceph-iscsi",
      "description": "Python package providing the modules used to handle the configuration of an\niSCSI gateway, backed by Ceph RBD. The RPM installs configuration management\nlogic (ceph_iscsi_config modules), an rbd-target-gw systemd service, and\na CLI-based management tool 'gwcli', replacing the 'targetcli' tool.\n\nThe configuration management modules may be are consumed by custom Ansible\nplaybooks and the rbd-target-gw daemon.\n\nThe rbd-target-gw service is responsible for startup and shutdown actions,\nreplacing the 'target' service used in standalone LIO implementations.\nIn addition, rbd-target-gw also provides a REST API utilized by the Ceph\ndashboard and gwcli tool, and a prometheus exporter for gateway LIO\nperformance statistics, supporting monitoring and visualisation tools like\nGrafana.",
      "name": "ceph-iscsi",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/f0b2606f1dc0294014b17bb8ea9231f0129611b4c9610b9db40f82da2b1f63da-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/ceph-iscsi@3.6-1.oe2403sp4?arch=noarch&epoch=0&upstream=ceph-iscsi-3.6-1.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3432",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd3442",
      "software_downloadLocation": "NOASSERTION",
      "summary": "A daemon that handles the userspace side of the LIO TCM-User backstore",
      "software_packageVersion": "0:1.6.0-2.oe2403sp4",
      "software_homePage": "https://github.com/open-iscsi/tcmu-runner",
      "description": "A daemon that handles the userspace side of the LIO TCM-User backstore.\n\nLIO is the SCSI target in the Linux kernel. It is entirely kernel code, and\nallows exported SCSI logical units (LUNs) to be backed by regular files or\nblock devices. But, if we want to get fancier with the capabilities of the\ndevice we're emulating, the kernel is not necessarily the right place. While\nthere are userspace libraries for compression, encryption, and clustered\nstorage solutions like Ceph or Gluster, these are not accessible from the\nkernel.\n\nThe TCMU userspace-passthrough backstore allows a userspace process to handle\nrequests to a LUN. But since the kernel-user interface that TCMU provides\nmust be fast and flexible, it is complex enough that we'd like to avoid each\nuserspace handler having to write boilerplate code.\n\ntcmu-runner handles the messy details of the TCMU interface -- UIO, netlink,\npthreads, and DBus -- and exports a more friendly C plugin module API. Modules\nusing this API are called \"TCMU handlers\". Handler authors can write code just\nto handle the SCSI commands as desired, and can also link with whatever\nuserspace libraries they like.",
      "name": "tcmu-runner",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/f0b2606f1dc0294014b17bb8ea9231f0129611b4c9610b9db40f82da2b1f63da-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/tcmu-runner@1.6.0-2.oe2403sp4?arch=aarch64&epoch=0&upstream=tcmu-runner-1.6.0-2.oe2403sp4.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-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/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd3",
      "type": "Tool",
      "name": "syft-[not provided]",
      "creationInfo": "_:creationInfo_1"
    }
  ]
}