type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-04T04:28:12Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-04T04:28:12Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96603
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd53
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96602
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96605
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd53
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96602
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd53
type: simplelicensing_LicenseExpression
simplelicensing license expression: MIT
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96604
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96602
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd96604
software download location: NOASSERTION
summary: Development documents and examples for portend
software package version: 0:3.2.0-1.oe2403sp4
software home page: https://pypi.org/project/portend
description: Use portend to monitor TCP ports for bound or unbound states. For example, to wait for a port to be occupied, timing out after 3 seconds:: portend.occupied('www.google.com', 80, timeout=3) Or to wait for a port to be free, timing out after 5 seconds:: portend.free('::1', 80, timeout=5) The portend may also be executed directly. If the function succeeds, it returns nothing and exits with a status of 0. If it fails, it prints a message and exits with a status of 1. For example:: python -m portend localhost:31923 free (exits immediately) python -m portend -t 1 localhost:31923 occupied (one second passes) Port 31923 not bound on localhost. Portend also exposes a ``find_available_local_port`` for identifying a suitable port for binding locally:: port = portend.find_available_local_port() print(port, "is available for binding") Portend additionally exposes the lower-level port checking functionality in the ``Checker`` class, which currently exposes only one public method, ``assert_free``:: portend.Checker().assert_free('localhost', 31923) If assert_free is passed a host/port combination that is occupied by a bound listener (i.e. a TCP connection is established to that host/port), assert_free will raise a ``PortNotFree`` exception.
name: python-portend-help
software source info: acquired package info from repodata DB: repodata/f1f85c23079e7764ad00378a9fc5d660b89a03657290e75426caf7be5b7da462-primary.sqlite.bz2
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0