Round 3 of the package review. A. §3.2: an override only forces royalty_free_only on. Overrides.royalty_free_only is a bool (force on); Policy::effective ORs it in. Both verifiers read policy.json's royalty_free_only as that override, so a policy.json of false over a policy.toml of true is policy-json-mismatch. pack_verify.py parses policy.toml, applies the override, then checks §3.6 under the effective policy (§11.3 step 4), no longer refusing at the parse. Corpus case policy-json-relaxes-royalty-free (the review's pk-pol-rfo-false: a patent-pool floor relabelled through the objects and index, sealed with policy.json false). golden::reseal_as seals a policy.json given as bytes. The policy corpus's override case is now eq-defaults-a.toml forced on (example.toml forced off was a relaxation); packs.rs takes the line out of the policy instead. B. pack_verify.py's strict walk raises on a directory it cannot read (os.walk onerror) and refuses it, as read_strict does. C. Both verifiers refuse a directory below the package that holds nothing (unexpected-file); §11.1 says "no other file or directory". Corpus cases empty-directory, empty-dot-directory (.git/refs) and unreadable-directory (mode 0, or empty where the platform has no modes). Package cases are now written out and verified as directories by both verifiers (golden::package_case_verdict). D. wai-pack pack refuses an --out that exists and is not empty (pack-out-not-empty, pack::out_dir_ready), before any work; §11.4 and §12. refusals.rs runs the command line: a stale claim left alone, a file in the way, an empty and a new directory packed and verified. E. A class named classic in any case is pack-id (eq_ignore_ascii_case); corpus case class-named-classic-in-capitals. F. review.rs deep_alterations_never_panic: 300 seeded rounds of floor-unit, framing, base-payload and index-field alterations through golden::replace_object and a re-seal; never a panic; anything accepted is in a stated equivalence class (AV1 frame data, producer statements, equivalent WIV1 encodings) or the golden itself. Floors: review 9, refusals 5. Co-Authored-By: Claude Opus 5.5 <[email protected]>
310 lines
9.7 KiB
JSON
310 lines
9.7 KiB
JSON
{
|
|
"pack": "video-base-01",
|
|
"cases": [
|
|
{
|
|
"name": "no-component",
|
|
"reason": "policy-component-mismatch",
|
|
"remove": [
|
|
"dash/classic.mpd",
|
|
"dash/mobile.mpd",
|
|
"dash/tv.mpd",
|
|
"floor/v/04c948608aaa7b5d78ad5355042a2ff65b0f75d9d4b1ad78f3ebffb886a74be6.m4s",
|
|
"floor/v/06d5cd79ba3860cccdc252fe915de0902f941a3c6a000295714f7cab193aa6cf.m4s",
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"floor/v/420ae4c941bba6e12a6c7fdb7d01dc69170ecb4240dffd2e86808ddf87baa12a.m4s",
|
|
"floor/v/99a24de04f7be9fc21097e69d2d61b222e458b1f93b8082026a9874aeb9f4c15.m4s",
|
|
"floor/v/init.mp4",
|
|
"hls/classic/floor-v.m3u8",
|
|
"hls/classic/master.m3u8",
|
|
"hls/legacy/master.m3u8",
|
|
"hls/mobile/master.m3u8",
|
|
"hls/mobile/wai-v.m3u8",
|
|
"hls/mobile/wai.m3u8",
|
|
"hls/tv/master.m3u8",
|
|
"hls/tv/wai-v.m3u8",
|
|
"hls/tv/wai.m3u8",
|
|
"index-v.wsix",
|
|
"moq/catalog.json",
|
|
"objects/24761a434c91c627f11abd6265371966b50573602a200dd7bb04e0d90889326d.wai",
|
|
"objects/35c7a45323b7afe979c123fa885f35cc55fabd2a1954759aebe4b95dbc76361f.wai",
|
|
"objects/618e0a89be8c7e556b380326b219c2f6fbfc5a0cb97754e871c1c23a99bdb481.wai",
|
|
"objects/61c7c3b7ccab07ed01df5b0d7ca0240598b914dbf2cabe545aa001e8de12d365.wai",
|
|
"objects/761c4649427c51796a2b699568775765b209ee80d2f4fc1cf040838c6724aa2d.wai",
|
|
"objects/7cc2b824ad6105abfccae27093190311b6a2348842e571684b021a213341b94a.wai",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai",
|
|
"objects/c2ce1907255a041c388afd06ccd007436368e8d20467fdec2a1eebbb84b03bf2.wai",
|
|
"plan-v.txt",
|
|
"stages/legacy.json",
|
|
"stages/mobile.json",
|
|
"stages/tv.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "no-component-live",
|
|
"reason": "policy-component-mismatch",
|
|
"remove": [
|
|
"dash/classic.mpd",
|
|
"dash/mobile.mpd",
|
|
"dash/tv.mpd",
|
|
"floor/v/04c948608aaa7b5d78ad5355042a2ff65b0f75d9d4b1ad78f3ebffb886a74be6.m4s",
|
|
"floor/v/06d5cd79ba3860cccdc252fe915de0902f941a3c6a000295714f7cab193aa6cf.m4s",
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"floor/v/420ae4c941bba6e12a6c7fdb7d01dc69170ecb4240dffd2e86808ddf87baa12a.m4s",
|
|
"floor/v/99a24de04f7be9fc21097e69d2d61b222e458b1f93b8082026a9874aeb9f4c15.m4s",
|
|
"floor/v/init.mp4",
|
|
"hls/classic/floor-v.m3u8",
|
|
"hls/classic/master.m3u8",
|
|
"hls/legacy/master.m3u8",
|
|
"hls/mobile/master.m3u8",
|
|
"hls/mobile/wai-v.m3u8",
|
|
"hls/mobile/wai.m3u8",
|
|
"hls/tv/master.m3u8",
|
|
"hls/tv/wai-v.m3u8",
|
|
"hls/tv/wai.m3u8",
|
|
"index-v.wsix",
|
|
"moq/catalog.json",
|
|
"objects/24761a434c91c627f11abd6265371966b50573602a200dd7bb04e0d90889326d.wai",
|
|
"objects/35c7a45323b7afe979c123fa885f35cc55fabd2a1954759aebe4b95dbc76361f.wai",
|
|
"objects/618e0a89be8c7e556b380326b219c2f6fbfc5a0cb97754e871c1c23a99bdb481.wai",
|
|
"objects/61c7c3b7ccab07ed01df5b0d7ca0240598b914dbf2cabe545aa001e8de12d365.wai",
|
|
"objects/761c4649427c51796a2b699568775765b209ee80d2f4fc1cf040838c6724aa2d.wai",
|
|
"objects/7cc2b824ad6105abfccae27093190311b6a2348842e571684b021a213341b94a.wai",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai",
|
|
"objects/c2ce1907255a041c388afd06ccd007436368e8d20467fdec2a1eebbb84b03bf2.wai",
|
|
"plan-v.txt",
|
|
"stages/legacy.json",
|
|
"stages/mobile.json",
|
|
"stages/tv.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "index-class-records",
|
|
"reason": "index-policy-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "index-class-rate",
|
|
"reason": "index-policy-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "index-capability",
|
|
"reason": "index-policy-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "index-string-order",
|
|
"reason": "index-policy-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "index-class-plan",
|
|
"reason": "index-policy-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "class-named-classic",
|
|
"reason": "pack-id",
|
|
"remove": [
|
|
"hls/legacy/master.m3u8",
|
|
"stages/legacy.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "class-named-classic-in-capitals",
|
|
"reason": "pack-id",
|
|
"remove": [
|
|
"hls/legacy/master.m3u8",
|
|
"stages/legacy.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "patent-pool-floor",
|
|
"reason": "license-refused:wai.video.avc:patent-pool",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "patent-pool-floor-by-override",
|
|
"reason": "license-refused:wai.video.avc:patent-pool",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "policy-json-relaxes-royalty-free",
|
|
"reason": "policy-json-mismatch",
|
|
"remove": [
|
|
"objects/35c7a45323b7afe979c123fa885f35cc55fabd2a1954759aebe4b95dbc76361f.wai",
|
|
"objects/761c4649427c51796a2b699568775765b209ee80d2f4fc1cf040838c6724aa2d.wai",
|
|
"objects/7cc2b824ad6105abfccae27093190311b6a2348842e571684b021a213341b94a.wai",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "component-medium",
|
|
"reason": "policy-component-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "floor-object-missing",
|
|
"reason": "object-missing",
|
|
"remove": [
|
|
"objects/7cc2b824ad6105abfccae27093190311b6a2348842e571684b021a213341b94a.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-object-corrupt",
|
|
"reason": "object-hash",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "live-window-past-2-53",
|
|
"reason": "catalog-mismatch",
|
|
"remove": [
|
|
"dash/classic.mpd",
|
|
"dash/mobile.mpd",
|
|
"dash/tv.mpd",
|
|
"floor/v/04c948608aaa7b5d78ad5355042a2ff65b0f75d9d4b1ad78f3ebffb886a74be6.m4s",
|
|
"floor/v/06d5cd79ba3860cccdc252fe915de0902f941a3c6a000295714f7cab193aa6cf.m4s",
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"floor/v/420ae4c941bba6e12a6c7fdb7d01dc69170ecb4240dffd2e86808ddf87baa12a.m4s",
|
|
"floor/v/99a24de04f7be9fc21097e69d2d61b222e458b1f93b8082026a9874aeb9f4c15.m4s",
|
|
"hls/classic/floor-v.m3u8",
|
|
"hls/classic/master.m3u8",
|
|
"hls/legacy/master.m3u8",
|
|
"hls/mobile/master.m3u8",
|
|
"hls/mobile/wai-v.m3u8",
|
|
"hls/mobile/wai.m3u8",
|
|
"hls/tv/master.m3u8",
|
|
"hls/tv/wai-v.m3u8",
|
|
"hls/tv/wai.m3u8",
|
|
"moq/catalog.json",
|
|
"stages/legacy.json",
|
|
"stages/mobile.json",
|
|
"stages/tv.json"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-opens-on-inter",
|
|
"reason": "floor-keyframe-mismatch",
|
|
"remove": [
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-extra-key-frame",
|
|
"reason": "floor-keyframe-mismatch",
|
|
"remove": [
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-extra-key-frame-allowed",
|
|
"reason": "ok",
|
|
"remove": [
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-sequence-header",
|
|
"reason": "floor-av1-malformed",
|
|
"remove": [
|
|
"floor/v/2f93f0ad449f9cc881b7816c6ab33fd445037d6538b445bcc76431f9c9f91c5b.m4s",
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-framing-header",
|
|
"reason": "floor-object-mismatch",
|
|
"remove": [
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-renderer-settings",
|
|
"reason": "floor-object-mismatch",
|
|
"remove": [
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-target",
|
|
"reason": "floor-object-mismatch",
|
|
"remove": [
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-motif",
|
|
"reason": "floor-motif-mismatch",
|
|
"remove": [
|
|
"objects/8f748dc64787b5c5ece081270c8559277f926322dd6ddc345306b8231f2d1752.wai"
|
|
]
|
|
},
|
|
{
|
|
"name": "floor-cmaf",
|
|
"reason": "floor-cmaf-mismatch",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "dot-file",
|
|
"reason": "unexpected-file",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "dot-directory",
|
|
"reason": "unexpected-file",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "dot-object",
|
|
"reason": "unexpected-file",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "sha256-file",
|
|
"reason": "unexpected-file",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "receipt-pretty",
|
|
"reason": "receipt-json",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "receipt-newline",
|
|
"reason": "receipt-json",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "receipt-duplicate-member",
|
|
"reason": "receipt-json",
|
|
"remove": []
|
|
},
|
|
{
|
|
"name": "empty-directory",
|
|
"reason": "unexpected-file",
|
|
"remove": [],
|
|
"empty_dirs": [
|
|
"hls/empty"
|
|
]
|
|
},
|
|
{
|
|
"name": "empty-dot-directory",
|
|
"reason": "unexpected-file",
|
|
"remove": [],
|
|
"empty_dirs": [
|
|
".git/refs"
|
|
]
|
|
},
|
|
{
|
|
"name": "unreadable-directory",
|
|
"reason": "unexpected-file",
|
|
"remove": [],
|
|
"unreadable_dirs": [
|
|
"objects/locked"
|
|
]
|
|
}
|
|
]
|
|
}
|