{ "blockers": [ "wasm_web_license_not_declared" ], "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "download_artifacts": { "artifacts": [ { "bytes": 122027, "license": "MPL-2.0", "mirror_kind": "official", "name": "pyodide-lock.json", "origin_url": "https://github.com/pyodide/pyodide/releases/tag/0.29.4", "role": "package_lock", "sha256": "14d2c2dba101277999e17135e653d8f15389ad1437f53eae213bf0c3cdff723d", "source_url": "https://cdn.jsdelivr.net/pyodide/v0.29.4/full/pyodide-lock.json", "version": "0.29.4" }, { "bytes": 18597, "license": "MPL-2.0", "mirror_kind": "official", "name": "pyodide.js", "origin_url": "https://github.com/pyodide/pyodide/releases/tag/0.29.4", "role": "loader_metadata", "sha256": "7be9e63eddf6bd8786a5ab71c8689c35731d187e3415fe58d7cb95423b50421a", "source_url": "https://cdn.jsdelivr.net/pyodide/v0.29.4/full/pyodide.js", "version": "0.29.4" } ], "index": { "bytes": 798, "path": "vendor/downloads/index.jsonl", "role": "download_index", "sha256": "9f62fc263eea03a17222e6ba1f1f73561b9cd361efec9d320f303e64353cd532", "status": "present" }, "python_runtime_manifest": { "bytes": 1902, "path": "python-runtime/manifest.json", "role": "python_runtime_manifest", "schema": "python-runtime-manifest.v1", "sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213", "status": "present" }, "status": "verified" }, "entry_closure": { "all_entries_have_evidence_status": true, "all_entries_have_owner": true, "closure_status": { "blocked": 57, "verified_scoped": 7996 }, "entries": 8053, "index": { "bytes": 6448888, "path": "coverage/license-source-index.jsonl", "role": "license_source_index", "sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6", "status": "present" }, "license_status": { "blocked_unassigned": 57, "scoped_declared": 7996 }, "owner_semantics": "license_audit_owner; does not replace manifest feature owner or promote needs_owner entries", "owner_status": { "assigned": 8053 }, "source_hash_status": { "verified": 8053 }, "status": "blocked" }, "implementation_license": { "decision": "unassigned_and_blocked", "decision_artifact": { "bytes": 1088, "path": "docs/linuxcnc-web-wasm-license-decision.md", "role": "implementation_license_decision", "sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7", "status": "present" }, "entries": 57, "paths": [ "wasm-core/**", "web/**" ], "reason": "no repository LICENSE/NOTICE/SPDX metadata assigns a license to the Web/WASM implementation files; upstream LinuxCNC declarations are not inherited", "status": "blocked" }, "real_excluded": { "runtime_categories": [ "hardware_driver", "linux_realtime_kernel", "host_device_access" ], "status": "explicit", "test_entry_count": 24, "test_report_count": 24, "test_source_ids": [ "test:linuxcnc/tests/build/header-sanity/test.sh", "test:linuxcnc/tests/build/ui/test.sh", "test:linuxcnc/tests/halcompile/command_line_flags/test.sh", "test:linuxcnc/tests/halcompile/serial-out-of-tree/checkresult", "test:linuxcnc/tests/halcompile/serial-out-of-tree/test.sh", "test:linuxcnc/tests/hm2-idrom/test.sh", "test:linuxcnc/tests/interp/g71-endless-loop/test.sh", "test:linuxcnc/tests/linuxcncrsh-tcp/checkresult", "test:linuxcnc/tests/linuxcncrsh-tcp/test.sh", "test:linuxcnc/tests/linuxcncrsh/checkresult", "test:linuxcnc/tests/linuxcncrsh/test.sh", "test:linuxcnc/tests/mb2hal/mb2hal.1a/checkresult", "test:linuxcnc/tests/mb2hal/mb2hal.1b/checkresult", "test:linuxcnc/tests/mb2hal/mb2hal.2a/checkresult", "test:linuxcnc/tests/mb2hal/mb2hal.2b/checkresult", "test:linuxcnc/tests/mdi-queue/oword-queue-buster/test.sh", "test:linuxcnc/tests/mdi-queue/simple-queue-buster/test.sh", "test:linuxcnc/tests/mqtt/checkresult", "test:linuxcnc/tests/mqtt/test.sh", "test:linuxcnc/tests/t0/nonrandom/test.sh", "test:linuxcnc/tests/t0/random-with-t0/test.sh", "test:linuxcnc/tests/t0/random-without-t0/test.sh", "test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/test.sh", "test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/test.sh" ] }, "release_decision": "license_closure_incomplete", "report_sha256": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "schema": "release-license-closure.v1", "source_inventory": { "entries": 8053, "license_field_in_manifest": false, "manifest_entries": 8053, "manifest_license_field_missing_entries": 8053, "path_roots": { "linuxcnc": 7996, "wasm-core": 45, "web": 12 }, "reason": "manifest v1 has no license field; the external deterministic index below records scoped upstream evidence and keeps unassigned implementation licenses blocked", "status": "partial", "unassigned_license_entries": 57 }, "status": "blocked", "upstream_declarations": { "declared_spdx_or_legacy_ids": [ "BSD-3-Clause", "Boost-1.0", "CC-BY-3.0", "GFDL-1.1+", "GNU-All-Permissive", "GPL-2", "GPL-2+", "GPL-3+", "ISC", "LGPL-2", "LGPL-2.1+", "MIT" ], "default_scope": "linuxcnc/* (subject to debian/copyright path exceptions)", "files": [ { "bytes": 18092, "path": "linuxcnc/COPYING", "role": "license_text", "sha256": "8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643", "status": "present" }, { "bytes": 43090, "path": "linuxcnc/COPYING.more", "role": "license_text", "sha256": "38a238c64e5e7f81f5232edabfa78c4031bc876bbfc6a3686384cd20a46ed2e4", "status": "present" }, { "bytes": 42172, "path": "linuxcnc/debian/copyright", "role": "scoped_license_declarations", "sha256": "b540e318b4b21e9a993e81baf4f56ee1b79656209fb1eda3738bbd507abb90a0", "status": "present" } ], "matched_entries": 7996, "status": "verified_scoped" } }