From 57729bd60b71575228462719f011f3268bf6b053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:27:49 +0300 Subject: [PATCH 1/8] research: define pilot v1 archival and DOI policy --- research/ARCHIVAL.md | 105 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 research/ARCHIVAL.md diff --git a/research/ARCHIVAL.md b/research/ARCHIVAL.md new file mode 100644 index 00000000..680f5898 --- /dev/null +++ b/research/ARCHIVAL.md @@ -0,0 +1,105 @@ +# Pilot v1 archival and DOI policy + +This document defines the release boundary for the first citable BPFCompat +research archive. It is an engineering reproducibility policy, not legal advice. + +## Current canonical evidence + +- canonical pilot workflow run: `35393833464` +- canonical source commit: `5de550e5cc8c659872a90fc262eb0250c229bf23` +- canonical Actions artifact: `10566859006` +- canonical artifact SHA-256: + `7aae7b5c099739ef0bcad74fbb3731aaafb1177f1ba128020729b08803610910` +- planned/observed executions: **70/70** +- repository dataset: `research/data/v1/` +- deterministic analysis: `research/analysis/v1/` +- repeat-run protocol: merged in PR #152; the manual 21-attempt execution is + still required before the research archive is frozen. + +## Archive layers + +The scholarly archive should be separable into three layers. + +### 1. Repository snapshot + +Include the exact tagged source tree used for the study, including: + +- research protocol and corpus metadata; +- `research/data/v1/`; +- `research/analysis/v1/`; +- repeat-run results once collected and committed; +- all research scripts required to regenerate normalized analysis; +- `CITATION.cff`, license files, provenance, checksums, and this archival policy. + +### 2. Canonical execution evidence + +Preserve the raw evidence from the canonical successful workflow, including +raw BPFCompat reports and execution provenance. The archive must bind every +archived file to checksums already recorded in the repository dataset or to an +additional archival manifest generated before release. + +The finite-retention GitHub Actions artifact is staging evidence, not the +durable scholarly archive. + +### 3. Materialized study inputs + +Do **not** blindly publish the complete materialization bundle. + +The DOI package may include BPFCompat-owned binaries/objects and redistributable +third-party-derived material only when the required notices are packaged with +it. Third-party compiled loader binaries with unresolved transitive notice +requirements must be represented by: + +- exact SHA-256; +- exact source revision; +- deterministic build recipe; +- validation-contract identity; +- upstream license/notice material. + +This keeps the study reproducible without making an unsupported redistribution +claim. + +## v1 inclusion policy + +| Item | DOI archive policy | Reason | +| --- | --- | --- | +| BPFCompat source, manifests, scripts, dataset, analysis | Include | Apache-2.0 repository material | +| BPFCompat v0.3.7 CLI and static validator | Include with BPFCompat license | Published BPFCompat release assets | +| BPFCompat controlled-probe `.bpf.o` files | Include with BPFCompat license | Built from BPFCompat-owned Apache-2.0 sources | +| Cilium-derived tracepoint source/object | Include only with pinned Cilium MIT notice and modification provenance | Upstream repository is MIT; the BPF program's `Dual MIT/GPL` runtime license marker is not a substitute for source-license attribution | +| custom cilium/ebpf Go loader binary | Exclude from v1 DOI bundle unless all binary-distribution notices are packaged | Binary includes external Go/cilium dependencies; reproducibility is preserved by source revision, dependency version, hash, and rebuild recipe | +| Falco `scap-open` binary | Exclude from v1 DOI bundle unless a complete transitive dependency/notice audit is finished | Built with `USE_BUNDLED_DEPS=ON`; Falco Apache-2.0 license and NOTICES are necessary but do not by themselves establish every bundled dependency obligation | +| VM/base images | Do not redistribute in the DOI bundle | Preserve exact image identities, source locations, and observed environment evidence instead | + +## Release gates + +A research-tagged release and DOI should not be created until all of the +following are true: + +1. the manual repeat-run stability sample has executed successfully and its + normalized results/provenance are committed; +2. final paper tables/figures are generated deterministically from committed + normalized data; +3. the archival file manifest and SHA-256 list are generated and verified; +4. every included third-party-derived file has the required license/notice + material, otherwise it is excluded and represented by provenance/hash; +5. the release tag resolves to the exact source/data state used by the + manuscript; +6. the DOI is minted only after the archive is immutable enough to cite. + +After the DOI exists, add it to `CITATION.cff`, the research README, and the +repository README. Do not add a placeholder DOI. + +## External-reference claims + +Academic visibility claims must remain evidence-backed: + +- **referenced by**: an independently maintained university/lab/course resource + links to BPFCompat; +- **cited by**: a scholarly work includes a formal citation; +- **used by**: there is public evidence of actual use; +- **endorsed by**: use only when the institution or named person explicitly + provides an endorsement. + +A university resource-page link must never be described as approval, +certification, or endorsement. From 56fe4524d3e83ced8796089bf57be7c43fd9ca72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:27:53 +0300 Subject: [PATCH 2/8] research: record pilot v1 redistribution review --- research/LICENSE-REVIEW-V1.md | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 research/LICENSE-REVIEW-V1.md diff --git a/research/LICENSE-REVIEW-V1.md b/research/LICENSE-REVIEW-V1.md new file mode 100644 index 00000000..4a2b2be8 --- /dev/null +++ b/research/LICENSE-REVIEW-V1.md @@ -0,0 +1,98 @@ +# Pilot v1 license and redistribution review + +Status: **partially cleared for archival; third-party compiled loaders remain +excluded by default.** + +This file records the engineering redistribution review for the frozen pilot v1 +study inputs. It is not legal advice. + +## Frozen external inputs + +### Cilium-derived tracepoint + +Frozen upstream: + +- repository: `cilium/ebpf` +- revision: `f035193453c32429bc2f6b6d623c4dfa200ad48f` +- upstream path: `examples/tracepoint_in_c/tracepoint.c` +- local derivative source is recorded in `research/corpus/v1/artifacts.yaml` +- materialized object SHA-256: + `16e1ce980c2c5bf6e839dac79e1710b4d185cbbca649e1e5421e1ab1fe7e5cc8` + +The pinned upstream repository LICENSE is the MIT License. The source embeds +`Dual MIT/GPL` in the eBPF program's kernel license section; that runtime marker +must not be treated as the repository's copyright-license notice. + +**Archival decision:** source/object redistribution is acceptable only when the +pinned Cilium MIT license/copyright notice and local modification provenance are +retained with the archived derivative. The existing materializer already copies +the pinned Cilium LICENSE into the generated bundle. + +### cilium/ebpf project-loader binary + +Frozen loader identity: + +- dependency: `github.com/cilium/ebpf@v0.22.0` +- binary SHA-256: + `2e0517a0a068cf169ebf6a562cd2354ff9f18da708de7e54af52027a893598a4` +- deterministic build flags include `-trimpath` and `-buildvcs=false` + +The binary is generated by the BPFCompat study materializer but incorporates +external software dependencies. The bundle currently preserves the Cilium MIT +license, but the v1 archive has not yet demonstrated a complete +binary-distribution notice set for every incorporated dependency/toolchain. + +**Archival decision:** exclude the compiled loader from the DOI archive by +default. Preserve its exact hash, dependency version, source/build recipe, and +validation-contract identity so it can be reproduced. + +### Falco `scap-open` + +Frozen upstream: + +- repository: `falcosecurity/libs` +- revision: `1800b330ce92b532456178abfcbfba3dd157f974` +- materialized binary SHA-256: + `736c307379603a8320434217440e346ce03260d31a5e7d58326f5526e2c2f2cd` + +The pinned Falco repository is Apache-2.0 and provides a `NOTICES` file. The +materializer already copies both `LICENSE` and `NOTICES`. The loader is built +with `USE_BUNDLED_DEPS=ON`, so the resulting binary can incorporate additional +third-party components whose redistribution obligations are not established +merely by preserving the top-level Falco files. + +**Archival decision:** exclude the compiled `scap-open` binary from the DOI +archive unless a complete transitive dependency and notice audit is performed. +Preserve its exact hash, pinned source revision, deterministic build recipe, +Falco LICENSE/NOTICES, and validation-contract identity. + +## BPFCompat-owned inputs + +The controlled probes, manifests, BPFCompat v0.3.7 CLI, static validator, +research scripts, and repository dataset are covered by the repository's +Apache-2.0 license. Preserve the repository LICENSE in any standalone research +archive containing them. + +## VM and vendor images + +The study records exact image identities and observed environments. VM/base +images are not part of the default DOI redistribution set. The archive should +retain identities, provenance, requested kernel family, observed kernel release, +and acquisition/rebuild instructions instead. + +## Required archival manifest + +Before a DOI deposit, generate a machine-readable archive manifest with one row +per file containing at least: + +- relative path; +- SHA-256; +- provenance class; +- owner/upstream project; +- source revision; +- redistribution status: `include`, `exclude-rebuildable`, or + `include-with-notice`; +- associated license/notice paths. + +The archive generator must fail closed if an item marked +`include-with-notice` lacks the named notice material. From bf2cde4ea99d2a671996e48f06f02cbf0980c742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:27:57 +0300 Subject: [PATCH 3/8] research: add pilot v1 preprint working draft --- research/paper/PREPRINT.md | 142 +++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 research/paper/PREPRINT.md diff --git a/research/paper/PREPRINT.md b/research/paper/PREPRINT.md new file mode 100644 index 00000000..5352a174 --- /dev/null +++ b/research/paper/PREPRINT.md @@ -0,0 +1,142 @@ +# Preprint working draft — pilot v1 + +Status: **working research draft, not peer reviewed and not yet archival-final.** + +## Candidate title + +**Kernel Version Is Not a Capability Contract: Empirical eBPF Artifact +Compatibility Across Linux Vendor Kernels** + +## Draft abstract + +eBPF portability is commonly reasoned about using kernel version, CO-RE, and +upstream feature-introduction points. Linux distributions, however, ship vendor +kernels with backports, rebases, configuration differences, and project-specific +loader behavior that can invalidate simple version-based compatibility +assumptions. We present BPFCompat, an empirical compatibility harness that boots +real Linux distribution kernels in disposable virtual machines and executes +compiled eBPF artifacts through libbpf or project-specific loader paths. + +A frozen x86_64 pilot study executed seven validation cases across ten logical +Linux profiles, producing 70/70 planned execution records. Fifty observations +were compatible, thirteen incompatible, and seven inconclusive because one +Oracle Linux logical profile requested a 5.15 kernel family but the vendor image +booted 6.12 UEK. Excluding the calibration case, the pilot contains 50 compatible, +4 incompatible, and 6 inconclusive observations. For a controlled +`BPF_MAP_TYPE_RINGBUF` probe, a simple upstream Linux 5.8 threshold agreed with +8 of 9 conclusive observations; AlmaLinux 8's observed 4.18 vendor kernel was +the below-threshold compatible exception. The dataset also contains two +cross-vendor version inversions in which an older-numbered kernel passed while a +newer-numbered kernel failed. + +These results are descriptive evidence from a selected pilot, not population +estimates for Linux deployments. The study publishes normalized evidence, +exact-environment identities, checksums, provenance, and deterministic analysis +scripts so the reported findings can be reproduced from the archived dataset. + +## Claimed contributions + +1. A reproducible method for testing compiled eBPF artifacts against real + vendor kernels instead of inferring compatibility from version strings. +2. A provenance model that separates logical kernel profiles from the exact + environments that actually booted. +3. A frozen pilot dataset with 70 execution records and deterministic RQ1–RQ4 + analysis. +4. Empirical examples showing that kernel-version ordering is not sufficient to + define a capability ordering when vendor backports are present. +5. Loader-path observations using both libbpf and project-specific Cilium/Falco + execution paths, while explicitly avoiding unsupported causal claims. + +## Research questions + +- **RQ1:** How predictive is kernel version of observed eBPF compatibility? +- **RQ2:** Why do otherwise portable eBPF artifacts fail? +- **RQ3:** How much does the loader affect the observed compatibility verdict? +- **RQ4:** How do vendor backports and exact execution environments change the + relationship between kernel version and compatibility? + +## Pilot results to preserve verbatim + +- collection: 70/70 attempts; +- overall: 50 compatible, 13 incompatible, 7 inconclusive; +- non-calibration: 60 attempts, 50 compatible, 4 incompatible, 6 inconclusive; +- RQ1 ring-buffer threshold agreement: 8/9 conclusive observations (88.889%); +- below-threshold compatible profile: `almalinux-8-4.18`; +- non-calibration incompatibility taxonomy: + - `UNSUPPORTED_MAP_TYPE`: 2; + - `COMMAND_VALIDATION_FAILURE`: 2; +- paired Cilium-derived paths: 0 verdict disagreements across 9 conclusive exact + environments, with non-comparable load+attach versus load-only contracts; +- exact environments: 10; +- cross-vendor version inversions: 2; +- patch-level longitudinal change: not evaluable in pilot v1. + +The source of truth for these values is +`research/analysis/v1/generated/analysis-summary.json`, not this prose. + +## Planned figures and tables + +### Figure 1 — study architecture + +Artifact/source selection → deterministic materialization → exact vendor VM +environment → BPFCompat/real-loader execution → normalized evidence → RQ analysis. + +### Figure 2 — ring-buffer version prediction versus observation + +Plot each conclusive ring-buffer observation by observed kernel series, mark the +upstream 5.8 threshold, and highlight the AlmaLinux 8 / 4.18 compatible +below-threshold observation. The plot must make vendor identity visible so it +cannot be read as a continuous kernel-version benchmark. + +### Figure 3 — compatibility matrix + +Rows: study cases. Columns: exact environments/logical profiles. Cells: +compatible, incompatible, or inconclusive. Calibration must be visually +separated from field/primary cases. + +### Table 1 — frozen corpus and validation contracts + +For each case: artifact class, source revision, loader, execution mode, analysis +role, and immutable contract identity. + +### Table 2 — failure taxonomy + +Report calibration and non-calibration denominators separately. Do not combine +the nine calibration incompatibilities with the four non-calibration +incompatibilities. + +### Table 3 — exact environment provenance + +Logical profile, distro/release, requested kernel family, observed kernel +release, image SHA-256, exact environment ID, and evaluability. + +### Table 4 — repeat-run stability + +Populate only after the merged PR #152 manual workflow is executed. Separate +environment drift from same-environment verdict instability. + +## Limitations + +- selected, stratified x86_64 pilot; not representative of global Linux + deployments; +- only one exact environment per logical profile in the canonical collection; +- Oracle 5.15 logical profile was not actually available in the observed run; +- the paired Cilium paths have different validation contracts, so agreement is + not a pure loader-effect estimate; +- project-loader coverage is intentionally narrow; +- patch-level longitudinal effects are not estimable from pilot v1. + +## Publication gates + +Do not convert this working draft into a submission-ready manuscript until: + +1. the 21-attempt repeat-run stability sample is executed and archived; +2. final figures/tables are generated from normalized data; +3. the v1 archival/redistribution manifest passes; +4. a research-tagged immutable release is created; +5. the release/data package is deposited in a DOI-granting archive; +6. the DOI and exact release version are added to `CITATION.cff`. + +Academic references or university resource-page links should be added only +after they are independently verifiable, and should be described as +`referenced by` or `cited by`, not as approval or endorsement. From 274066a2901c80c0e2561b647739f8aa1a6c8e24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:28:27 +0300 Subject: [PATCH 4/8] research: update academic readiness gates --- research/ROADMAP.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/research/ROADMAP.md b/research/ROADMAP.md index 0c7cd56b..bd080836 100644 --- a/research/ROADMAP.md +++ b/research/ROADMAP.md @@ -15,8 +15,11 @@ identities are captured before execution. - [x] Freeze a versioned logical kernel-profile selection; exact environment identities are captured after boot as required by the corpus schema. -- [ ] Complete license/redistribution review for every materialized binary and - archived external artifact. +- [x] Record a v1 archival/redistribution policy and default exclusion rule for + third-party compiled loader binaries whose transitive notice set is not + fully established. +- [ ] Complete any transitive dependency/notice audit required for a + third-party compiled binary that is ultimately included in the DOI bundle. - [x] Capture immutable generated-artifact and loader-binary identities for the frozen v1 selection. The identity lock is committed and enforced by CI. OCI identities remain deferred with Inspektor Gadget rather than being @@ -28,14 +31,21 @@ - [x] Implement a versioned study runner and normalizer for captured BPFCompat reports. - [x] Generate pilot v1 descriptive RQ1–RQ4 tables from normalized data. - [ ] Generate every final paper table and figure from normalized data. -- [ ] Add repeat-run checks for a representative sample. +- [x] Define a bounded representative repeat-run protocol (PR #152). +- [ ] Execute the 21-attempt repeat-run workflow from `main`, archive its + provenance/results, and evaluate environment drift separately from + same-environment verdict instability. - [x] Document the v1 execution boundary, KVM/VM prerequisites, exact-environment identity, and collection completeness rules. - [x] Publish raw/processed dataset checksums and bind the repository snapshot to the canonical successful workflow artifact. +- [x] Add a preprint working draft with claims constrained to generated v1 data. ## Phase 4 — Archival -- [ ] Create a research-tagged release after the corpus and protocol are frozen. +- [x] Define the pilot v1 archival/DOI policy and third-party binary boundary. +- [ ] Generate and verify the final machine-readable archival manifest. +- [ ] Create a research-tagged release after repeat stability and final figures + are frozen. - [ ] Archive the release/dataset in a DOI-granting repository such as Zenodo. - [ ] Add the DOI to `CITATION.cff` and the README only after it exists. - [ ] Preserve exact code/data versions used for any manuscript. From 07690bea9873bcb59645ed5b190ed87a88830dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:28:31 +0300 Subject: [PATCH 5/8] research: link publication readiness materials --- research/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/research/README.md b/research/README.md index 07bd1fa6..485f7c2a 100644 --- a/research/README.md +++ b/research/README.md @@ -30,12 +30,30 @@ Repository snapshot and integrity metadata: raw-report checksums, and dataset manifest; - [`analysis/v1/`](analysis/v1/) — deterministic descriptive RQ1–RQ4 tables and machine-readable analysis summary; +- [`repeat/v1/`](repeat/v1/) — merged post-collection stability protocol; the + manual 21-attempt execution is still pending; - `scripts/research/analyze-study-v1.py` — analysis generator; - `scripts/research/test-analysis-v1.sh` — checksum and reproduction gate. The full workflow artifact remains staging evidence for later DOI archival; its artifact identity is recorded in the dataset manifest. +## Publication readiness + +Publication-facing material is kept explicit and evidence-bounded: + +- [ARCHIVAL.md](ARCHIVAL.md) — DOI/research-release boundary and archive gates; +- [LICENSE-REVIEW-V1.md](LICENSE-REVIEW-V1.md) — v1 redistribution review and + third-party compiled-loader policy; +- [paper/PREPRINT.md](paper/PREPRINT.md) — working manuscript scaffold whose + numerical claims are constrained to generated v1 analysis; +- [ROADMAP.md](ROADMAP.md) — remaining repeat-run, figure, archival, DOI, and + external academic-use gates. + +No university, lab, course, or paper should be listed as an academic reference +until a public independent source can be verified. A resource-page link is a +reference, not approval, certification, or endorsement. + ## Study objective Measure how compiled eBPF artifacts and their real loader paths behave across From 8f322c24b9750119cbc84aa29e896b9bfe2591de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:41:29 +0300 Subject: [PATCH 6/8] research: tighten archival redistribution contract --- research/LICENSE-REVIEW-V1.md | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/research/LICENSE-REVIEW-V1.md b/research/LICENSE-REVIEW-V1.md index 4a2b2be8..af2c2a99 100644 --- a/research/LICENSE-REVIEW-V1.md +++ b/research/LICENSE-REVIEW-V1.md @@ -32,10 +32,21 @@ the pinned Cilium LICENSE into the generated bundle. Frozen loader identity: +- loader source repository: `Kernel-Guard/bpfcompat` +- loader source revision: `b8ef57f4e02ebecee4649f7657ea8eea6af46ca9` +- loader source path: `examples/ebpf-go-loader` - dependency: `github.com/cilium/ebpf@v0.22.0` - binary SHA-256: `2e0517a0a068cf169ebf6a562cd2354ff9f18da708de7e54af52027a893598a4` - deterministic build flags include `-trimpath` and `-buildvcs=false` +- retained upstream license path in the materialized bundle: + `licenses/Cilium-ebpf-LICENSE` +- retained upstream notice paths: none (`[]`); no separate Cilium notice file is + relied upon for this excluded binary + +The loader source revision/path, `go.mod`/`go.sum` blob identities, dependency +version, and build command are frozen in +`research/corpus/v1/validation-contracts.yaml`. The binary is generated by the BPFCompat study materializer but incorporates external software dependencies. The bundle currently preserves the Cilium MIT @@ -43,8 +54,9 @@ license, but the v1 archive has not yet demonstrated a complete binary-distribution notice set for every incorporated dependency/toolchain. **Archival decision:** exclude the compiled loader from the DOI archive by -default. Preserve its exact hash, dependency version, source/build recipe, and -validation-contract identity so it can be reproduced. +default. Preserve its exact hash, dependency version, frozen source/build +metadata, retained license path, and validation-contract identity so it can be +reproduced. ### Falco `scap-open` @@ -54,6 +66,8 @@ Frozen upstream: - revision: `1800b330ce92b532456178abfcbfba3dd157f974` - materialized binary SHA-256: `736c307379603a8320434217440e346ce03260d31a5e7d58326f5526e2c2f2cd` +- retained license path: `licenses/Falco-libs-LICENSE` +- retained notice path: `licenses/Falco-libs-NOTICES` The pinned Falco repository is Apache-2.0 and provides a `NOTICES` file. The materializer already copies both `LICENSE` and `NOTICES`. The loader is built @@ -64,7 +78,7 @@ merely by preserving the top-level Falco files. **Archival decision:** exclude the compiled `scap-open` binary from the DOI archive unless a complete transitive dependency and notice audit is performed. Preserve its exact hash, pinned source revision, deterministic build recipe, -Falco LICENSE/NOTICES, and validation-contract identity. +Falco LICENSE/NOTICES paths, and validation-contract identity. ## BPFCompat-owned inputs @@ -94,5 +108,16 @@ per file containing at least: `include-with-notice`; - associated license/notice paths. -The archive generator must fail closed if an item marked -`include-with-notice` lacks the named notice material. +Status semantics are fail-closed: + +- plain `include` is valid only for `bpfcompat-owned` provenance; +- every third-party-derived file must be either `include-with-notice` or + `exclude-rebuildable`; +- a third-party-derived row marked plain `include` is invalid; +- every `include-with-notice` row must name the applicable retained + license/notice path(s), and every named path must exist in the archive; +- `exclude-rebuildable` rows retain identity/provenance/build metadata but the + excluded binary/object itself must not be present in the DOI payload. + +The archive generator/validator must enforce these rules and fail closed on any +violation. From 5ff84eb29311a8053e5de3140bd97a50644b9224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:41:31 +0300 Subject: [PATCH 7/8] research: make third-party archive statuses fail closed --- research/ARCHIVAL.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/research/ARCHIVAL.md b/research/ARCHIVAL.md index 680f5898..0a216f6c 100644 --- a/research/ARCHIVAL.md +++ b/research/ARCHIVAL.md @@ -54,11 +54,18 @@ requirements must be represented by: - exact source revision; - deterministic build recipe; - validation-contract identity; -- upstream license/notice material. +- upstream license/notice material and retained archive paths. This keeps the study reproducible without making an unsupported redistribution claim. +For the final machine-readable archival manifest, plain `include` is reserved +for BPFCompat-owned provenance. Third-party-derived rows must use +`include-with-notice` or `exclude-rebuildable`; the validator must reject a +third-party-derived row marked plain `include`. Every +`include-with-notice` row must name retained license/notice paths that exist in +the archive. + ## v1 inclusion policy | Item | DOI archive policy | Reason | From 38c218f079a3dbced9ec034903e0d4f4955bb316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20Ar=C4=B1?= Date: Sat, 19 Sep 2026 15:41:33 +0300 Subject: [PATCH 8/8] research: clarify pre-archive reproducibility wording --- research/paper/PREPRINT.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/research/paper/PREPRINT.md b/research/paper/PREPRINT.md index 5352a174..2c636e8f 100644 --- a/research/paper/PREPRINT.md +++ b/research/paper/PREPRINT.md @@ -32,7 +32,8 @@ newer-numbered kernel failed. These results are descriptive evidence from a selected pilot, not population estimates for Linux deployments. The study publishes normalized evidence, exact-environment identities, checksums, provenance, and deterministic analysis -scripts so the reported findings can be reproduced from the archived dataset. +scripts so the reported findings can be reproduced from the committed versioned +repository dataset. ## Claimed contributions