[arch-general] User-Submitted Package Updates (how it could possibly work)
Interesting discussion: https://old.reddit.com/r/archlinux/comments/s5id1m/usersubmitted_package_upd... https://archive.is/9wwNm Quoting: -------- A lot of packages are flagged out of date, some even for security issues. Some have no maintainer. Many have inactive maintainers and have been left to rot. Active developer resources are limited. I'd like to describe how the situation could be improved with the help of the community in a way that may not have been brought up before. Arch packages are built from very easy-to-read PKGBUILD files, similar to Makefiles. In short, users would be able to submit diffs to PKGBUILDs in the repo for updates, but not actually upload binary packages, similar to how the AUR works (and for the same reason): A diff to the PKGBUILD can be audited for errors or malice in a matter of seconds, while a (currently unreproduced) user-submitted binary shouldn't be trusted at all. The only difference in this scenario is that a trusted committer (who may or may not be the package maintainer) would have to look at the diff and commit the update to the repo, rather than users committing them. On to the first issue: that text I put in bold. Several Arch devs have mentioned (in public and private) that the culture of not "stepping on anyone's toes" prevents them from updating packages that are maintained by someone else. Conversely, there was a talk at the last Arch Conf where Lavente said he wanted more packages to be co-maintained by multiple people in case one wasn't available to actually maintain it. I don't have a technical solution to this people problem -- devs would simply have to live with the fact that users need fixes and sometimes another dev will update your package for you. Don't take it personally. The other issue: Arch has a legacy separation of core, extra, and community repos. Only "developers" can commit to core and extra, while "trusted users" are restricted to the community repo. I'm 100% sure everyone reading this has all three repos enabled, thus destroying any notion of community being "less trusted" than the other two. Having the core repo require an extra sign-off and some testing is a good idea, but otherwise I think this artificial separation should be done away with. One problem with the current situation is that "trusted users" may be available and willing to help, but can't actually update anything in the core or extra repos. Onboarding more of them doesn't help either because it takes months or years for them to be promoted to "developers," if it happens at all. So back on topic: How would users actually submit the updates to the PKGBUILDs? Eventually, when the Arch gitlab allows registration, they could be very simply sent as pull requests. Right now they would have to be sent through the existing bug tracker (the same one that specifically disallows what I'm suggesting). After being reviewed and committed, a package could be built by the developer who chose to take it... or there could be bigger infrastructure changes to save them time and effort in the long run. Here I'm talking about a large number of project devs committing the PKGBUILD changes, but only one build server (or farm) doing the compilation and (optionally through another special server) signing of the results. This is basically how it works in BSD for their package repos. The server(s) could automatically build any committed update every hour, or devs could issue a "queue this package" type of command on it, or some other way. That kind of setup would have the side benefit of only requiring users to trust one signing key, rather than a keyring of dozens of people around the world with varying degrees of personal security, and trusting the binaries sometimes just built on their daily laptops. It would also allow the package database to be signed more easily, which has been a big problem for a long time. (This is probably better for a separate discussion.) tl;dr: Users submit PKGBUILD diffs, anyone with commit access builds and pushes them. What do you think?
On 2022-01-17 01:24, Philip Evens via arch-general wrote:
tl;dr: Users submit PKGBUILD diffs, anyone with commit access builds and pushes them. What do you think?
I agree something along these lines can and should be done, but I also think there are a few pitfalls with the scheme you outlined. I think it will be better to finish the migration from SVN → Git for all the repository files and tooling. Once PKGBUILDs are in Git and hosted on Arch's GitLab installation and the tooling is updated so that build and release workflows revolve around this, it will be *much* easier to reason about how non-developer contributions fit into the mix. Any effort to organize this on existing infrastructure is going to have many more edge cases that are potential security holes and create technical debt that make this migration harder. Good idea, but lets talk about it after that transition has happened. Incidentally there is some talk of reorganizing the [core]/[extra]/[community] repository splits that is also mixed up with both the tooling migration to Git and renaming of developer/tu roles. Sorting those out first will also make it easier to reason about a workflow for end user packaging contributions to official repositories. Caleb
Hi Caleb! On 1/17/22 10:22, Caleb Maclennan via arch-general wrote:
I think it will be better to finish the migration from SVN → Git for all the repository files and tooling. Once PKGBUILDs are in Git and hosted on Arch's GitLab installation and the tooling is updated so that build and release workflows revolve around this, it will be *much* easier to reason about how non-developer contributions fit into the mix. Any effort to organize this on existing infrastructure is going to have many more edge cases that are potential security holes and create technical debt that make this migration harder.
What is the planned timeline for this migration? IMHO it would do a great deal of good to the community to (a) communicate these plans clearly and (b) communicate where help is needed and how the community can pitch in. Best regards, Vasi Vilvoiu
On 22-01-17 15:07, Vasi Vilvoiu via arch-general wrote:
What is the planned timeline for this migration? IMHO it would do a great deal of good to the community to (a) communicate these plans clearly and (b) communicate where help is needed and how the community can pitch in.
I'm going to be blunt here; there is no timeline. Arch is a volunteer effort. It's a significant effort that requires a *lot* of changes/testing to our internal tooling/infrastructure. The people actually responsible for it will probably chime in at some point, but don't expect them to. :p -- George Rawlinson
participants (4)
-
Caleb Maclennan
-
George Rawlinson
-
Philip Evens
-
Vasi Vilvoiu