blob: 08b8c96e2aec67aba079a13ea93a3a87f1c8200d [file] [log] [blame]
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Handling Release Artifact Integrity Errors at the ASF - Apache Infrastructure Website</title>
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/fontawesome.all.min.css" rel="stylesheet">
<link href="/css/headerlink.css" rel="stylesheet">
<script src="/highlight/highlight.min.js"></script> </head>
<body class="d-flex flex-column h-100">
<main class="flex-shrink-0">
<div>
<!-- nav bar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark" aria-label="Fifth navbar example">
<div class="container-fluid">
<a class="navbar-brand" href="/"><img src="/images/feather.png" style="height: 32px;"/> Apache Infrastructure</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarADP" aria-controls="navbarADP" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarADP">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/team.html">About the team</a></li>
<li><a class="dropdown-item" href="/roundtable.html">The Infrastructure Roundtable</a></li>
<li><a class="dropdown-item" href="/blog/">The Infrastructure Blog</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/policies.html">Policies</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">Services and Tools</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/services.html">Services and Tools</a></li>
<li><a class="dropdown-item" href="/machines.html">Machines and Fingerprints</a></li>
<li><a class="dropdown-item" href="https://blocky.apache.org/">Blocky</a></li>
<li><a class="dropdown-item" href="https://app.datadoghq.com/account/login?next=%2Finfrastructure">DataDog</a></li>
<li><a class="dropdown-item" href="https://whimsy.apache.org/roster/committer/" target="_blank">Committer Search</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/doc.html">Contribute</a></li>
<li><a class="dropdown-item" href="/infra-volunteer.html">Volunteer with Infra</a></li>
<li><a class="dropdown-item" href="/how-to-mirror.html">Become an ASF download mirror</a></li>
<li><a class="dropdown-item" href="/hosting-external-agent.html">Host a Jenkins or Buildbot agent</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/stats.html">Status</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact.html">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- page contents -->
<div id="contents">
<div class="bg-white p-5 rounded">
<div class="col-sm-8 mx-auto">
<h1>
Handling Release Artifact Integrity Errors at the ASF
</h1>
<p>This page will help you resolve <a href="https://infra.apache.org/release-distribution">release distribution policy</a> errors that our <a href="https://github.com/apache/infrastructure-download-integrity-checker">Download Integrity Checker</a> discovers.
Each reported error has an accompanying error code (<code>CHKxx</code>). The code will help you resolve issues by using the matrix below:</p>
<table>
<thead>
<tr>
<th>Error Code</th>
<th>Error Description</th>
<th>How to Address the Issue</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CHK01</code></td>
<td>Key used for signing artifact is missing from the <a href="https://infra.apache.org/release-signing.html#key-basics"><code>KEYS</code></a> file</td>
<td>Make sure the key that signed the release was expected. <br/>Update your <a href="https://infra.apache.org/release-signing.html#key-basics"><code>KEYS</code></a> file to include the key. Remember to move your updated <code>KEYS</code> file from <code>/dev/</code> to <code>/release/</code> on dist.apache.org when releasing with new keys.</td>
</tr>
<tr>
<td><code>CHK02</code></td>
<td>Weak or missing checksum file(s)</td>
<td><ul><li>If the release artifact has a valid signature, generate a <a href="https://infra.apache.org/release-signing.html#sha-checksum">conforming checksum</a> and add it. You can leave the old hash file.</li><li>Otherwise, see <code>CHK05</code>.</li></ul></td>
</tr>
<tr>
<td><code>CHK03</code></td>
<td>No <a href="https://infra.apache.org/release-signing.html#key-basics"><code>KEYS</code></a> file was found in the project's distribution directory</td>
<td>Make sure the project directory has at least one KEYS file containing all signing keys used for distribution. Projects may have more than one <a href="https://infra.apache.org/release-signing.html#key-basics"><code>KEYS</code></a> file (per-component, per-version, etc.) but they <em>MUST</em> be called <code>KEYS</code> and exist within the project's dist directory.</td>
</tr>
<tr>
<td><code>CHK04</code></td>
<td>The signature used for signing expired before signing the file</td>
<td><ul><li>It’s possible the expiry has been changed. Make sure the <a href="https://infra.apache.org/release-signing.html#key-basics"><code>KEYS</code></a> file is updated.</li><li>If the key has really expired treat the file as if it has no signature (<code>CHK05</code>).</td>
</tr>
<tr>
<td><code>CHK05</code></td>
<td>No (or invalid) signature found for the release artifact</td>
<td>Check: <ul><li>Is there a signature file for this artifact?:<ul><li>If the signature is valid but has the wrong file name or extension, rename it to the appropriate .asc file name.</li><li>If the signature is invalid, see <a href="#invalid-sig">handling invalid or missing signatures</a>.</li></ul></li><li>If there is no signature file at all, see <a href="#invalid-sig">handling invalid or missing signatures</a>.</td>
</tr>
<tr>
<td><code>CHK06</code></td>
<td>Checksum mismatch</td>
<td>Try to spot what the problem was (why are you generating the wrong checksum?): <ul><li>If the file has a valid signature (no <code>CHK04</code> or <code>CHK05</code> errors for this file), generate a <a href="https://infra.apache.org/release-signing.html#sha-checksum">conforming checksum</a>, add it, and remove the broken one.</li><li>Otherwise: treat as if <code>CHK05</code>.</li></ul></td>
</tr>
</tbody>
</table>
<h2><a id="invalid-sig">Handling invalid or missing signatures</a></h2>
<p>In case of an invalid or missing signature for a release artifact, the project MUST choose one of the following actions:
- Remove the artifact(s)
- Re-assert that the artifact is valid, sign and upload the correct .asc signature file (and fix any missing/invalid checksum files)</p>
<p>In either case, the project MUST inform the ASF Infrastructure and Security Team
at <code>private@infra.apache.org</code> and <code>security@apache.org</code> of their action, with clear evidence that the action
has been discussed and agreed upon (a link to a lists.apache.org thread will suffice).</p>
<p>If you have questions about the error reports, this page, or our release distribution polices in general,
feel free to reach out to us at <code>users@infra.apache.org</code>.</p>
</div>
</div>
</div>
<!-- footer -->
<div class="row">
<div class="large-12 medium-12 columns">
<p style="font-style: italic; font-size: 0.8rem; text-align: center;">
Copyright 2024, <a href="https://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
Apache&reg; and the Apache feather logo are trademarks of The Apache Software Foundation...
</p>
</div>
</div>
<script type="application/ecmascript" src="/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3"></script> </div>
</main>
<script>hljs.initHighlightingOnLoad();</script>
</body>
</html>