Add RFC for upstream package source handling
Compare changes
rfcs/0046-upstream-package-sources.md
0 → 100644
+ 307
− 0
Assuming that the platform they are generated on is trusted, auto-generated source tarballs are very transparent, can easily be checksummed, are immutable (unless forge or VCS system alter their way of generating the tarball, e.g. [changes to git-archive] leading to [GitHub changing their way of generating tarballs]) and straight forward to work with for package maintainers.
Using pull / merge requests as a patch (e.g. `fix.patch::https://patch-diff.githubusercontent.com/raw/archlinux/contrib/pull/82.patch`) is prone to have side-effects, especially if the changes have not been merged yet: If new commits are added to the said pull / merge request, this changes the checksum of the applied patch.
If a project's releases are issued and signed by person `A`, then person *A* is the one to establish the trust path towards any new person, e.g. person `B`. This principle also applies to different cryptographic key material of the same person `A` when transitioning from key material `A1` to a new key `A2`.
With some upstreams (e.g. those relying on autotools setups, or git submodules), working with transparent sources (i.e. non-custom source artifacts, or git submodules) may be less convenient for the package maintainer as they require additional steps or preparation, which increases the complexity of the build process.
In cases where upstreams are not (nor don't want to be) compliant with the points exposed in this RFC, an alternative could be to clone or copy upstream sources on our side and base the related packages on those cloned sources (like Debian does), which would offer more flexibility and control in source handling.