[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#920763: lintian: orig-tarball-missing-upstream-signature interacts poorly with mode=git,pgpmode=gittag



Hi Daniel,

On Fri, Mar 1, 2019 at 4:12 AM Daniel Kahn Gillmor <dkg@fifthhorseman.net> wrote:
>
>
> I think what you're describing takes aim a different problem, so i don't
> think it addresses the underlying concern here.

I believe it solves your problem, just not the way you expect.

As you point out, the current approach of validating different upstream signature formats is the point of this bug. You list two, but as you note there could be more:

> At issue in #920763 is our attempt to capture verified *upstream*
> cryptographic signatures.  There are (at least) two common practices for
> such signatures by upstreams across the free software ecosystem:
>
>  a) detached signatures over tarballs
>  b) signed git tags

With source format 3.0 (git) that logic even found a way into the packaging system. Let's flip it around for a moment: Why not validate upstream signatures when the package is built?

My shipping manifest offers an "origin statement" to include git or tarball signatures (even multiple) that tie the original source (in any format) to the list of file hashes. Signed by a Debian maintainer, the manifest provides a trust path.

To pick up on Chris's comment, the validation happens when our tools can be reasonably expected to have network access (or the maintainer has a git repo nearby).

> aiui, your tool is
> designed to something operated by the debian developer/maintainer.
>

That cannot be an obstacle. You just suggested it earlier in this thread:

I guess if we wanted some version of lintian to be able to check on the
git tag, we need to have some sort of export (git shallow
something-or-other?) that could be included in debian/ to recreate a git
repo that would be sufficient to verify the contents of the files and
confirm the git signature.

Yours were the very words that made me believe I could help. :)

A signed manifest is less complex, more universal, and would likely take up less space.

As an aside, maintainer involvement is always required when repacking for DFSG-compliance. A manifest with an origin statement would handle that case with ease.

> Today, we have pretty decent tooling to handle (a).  we even distribute> upstream tarball signatures directly when we have them:
> (e.g. https://mirrors.edge.kernel.org/debian/pool/main/k/knot/knot_2.6.8.orig.tar.xz
> can be verified against the upstream signer's key by fetching
> https://mirrors.edge.kernel.org/debian/pool/main/k/knot/knot_2.6.8.orig.tar.xz.asc)
>
> So for (a), we're effectively assembling an archive of all of the
> upstream signatures that we know about, which could be used later for
> verifying provenance of the source code used.
>
> What we don't have is tooling to handle or aggregate such a verifiable
> archive for those upstream signatures that fall under (b).  Do you think
> the tool you're describing would help with that?

I believe my tool covers a) and b) as well as any other past, current, or future authentication method for upstream sources.

As a side note, the signed manifest could even be the sole item uploaded for a new version if it also includes a list of URLs where the sources may be found. Right now, I call it the Light Upload Format.

Kind regards,
Felix


Reply to: