Skip to content
Snippets Groups Projects

Add RFC for upstream package source handling

Open David Runge requested to merge dvzrv/rfcs:rfc/upstream-package-sources into master
All threads resolved!

Add an RFC that proposes choosing transparent sources by default and adds guidelines for the handling of cryptographic signatures for Arch Linux package sources.

See the rendered version.

Signed-off-by: Robin Candau antiz@archlinux.org

Signed-off-by: David Runge dvzrv@archlinux.org

Edited by David Runge

Merge request reports

Members who can merge are allowed to add commits.

Pipeline #122806 passed

Pipeline passed for 7e859dc2 on dvzrv:rfc/upstream-package-sources

Approved by
Ready to merge by members who can write to the target branch.
  • The source branch is 10 commits behind the target branch.
  • 16 commits and 1 merge commit will be added to master.
  • Source branch will be deleted.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Robin Candau added 1 commit

    added 1 commit

    • 25ca58cf - Use a more precise wording for the VCS Object source type

    Compare with previous version

  • Robin Candau added 1 commit

    added 1 commit

    Compare with previous version

  • Morten Linderud
  • Morten Linderud
    • Resolved by David Runge

      Overall a lot of good stuff here. There is several words introduced here which is 50/50 described and explained and sometimes just assumed to be words people know. I think we need to figure out whom the target audience of the text is. Is it only the expert that has been packaging for years, or also new packagers interested in the topic?

      If we want to target the latter case then we need to be a bit more educational in some parts.

  • kpcyrd
  • David Runge added 1 commit

    added 1 commit

    • 4c426b57 - Add section about handling of patches

    Compare with previous version

  • David Runge added 10 commits

    added 10 commits

    • 4c426b57...5319b12b - 6 commits from branch archlinux:master
    • c4defad3 - Add RFC for upstream package source handling
    • 302a4d7c - Use a more precise wording for the VCS Object source type
    • 6113c8ad - Wording improvements
    • 934ae63a - Add section about handling of patches

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • bf8a43f0 - Add simple introduction on VCS

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • 4830e9d7 - Add link for transparency log

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • 176ac31f - Rename "Advice for source selection" section to "Conclusion"

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • 4bcdbf88 - Add better introduction for "Transparency" section

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • cba8d5e7 - Add information on offline proofs to "Sigstore" section

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • d45fec9b - Extend summary to clarify target audience and scope of the RFC

    Compare with previous version

  • Robin Candau added 1 commit

    added 1 commit

    • f43b8adf - Apply 1 suggestion(s) to 1 file(s)

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • 96cad4b9 - Rename "Plain VCS objects" to "VCS objects"

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • f56e0487 - Be less specific about sigstore identity providers.

    Compare with previous version

  • David Runge added 1 commit

    added 1 commit

    • 7e859dc2 - Remove the use of "graph" from future work with in-toto

    Compare with previous version

  • David Runge resolved all threads

    resolved all threads

  • David Runge approved this merge request

    approved this merge request

  • This RFC has now entered Final Comment Period. In 14 days, discussion will end and the proposal will either be accepted, rejected or withdrawn: https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/ZUXBOXGW7RJF3SJ25IRX7FKDUUU3PUQX/

  • I agree with all the content. Only comments would be to limit the use of 3rd party verification as that places part of the process outside your control and you cannot be assured any such service will continue indefinitely.

    There are a few opportunities for grammar/style improvements. Consider the alternate wording for introductory paragraphs to simply make it a tad more concise:

    According to the "Triangle of Secure Code Delivery", transparency is considered one of the pillars of secure package delivery. For any distribution this transparency extends to the source code from which those packages are built. Transparent sources allow easy audit of individual changes via version control systems. This also allows (auto-generated) release artifacts to the version controlled files they originate from.

    and

    Nontransparent sources do not provide access to their version control systems. Only large aggregate changes are publicly visible which may include custom source tarballs (sometimes containing artifacts from unknown sources). These type of sources frustrate the ability to audit changes, apply patches and reliably maintain a project.

    (intransparent is a word, circa 1840, but nontransparent is in much more common use [it's not even underlined in red here])

    For custom tarballs, the following is a shortening to consider:

    Custom source tarballs created on unknown systems, potentially by unknown users are less transparent and auditable because their content cannot be guaranteed to only contain artifacts from the version controlled repository.

    Also under the GPG section "allows to" isn't really a thing. "can" works much better, e.g.

    ... which can cryptographically verify a statement about a certificate issued by another.

    I also think there needs to be a paragraph on the repackaging of upstream (or custom) binaries. I've notice a significant recent jump in those type packages. I've always viewed anything but an 100% verifiable upstream binary (e.g. vscode from MS, etc..) as being less trustworthy than custom tarballs. They should receive mention in this document.

    All and all Great Job! Operational Frameworks and Plans are necessary, but always one of the less glorious matters to do. Like doing taxes...

    Edited by David C. Rankin
  • Please register or sign in to reply
    Loading