Patrice Clement posted on Mon, 02 Nov 2015 11:28:10 +0100 as excerpted:

> By reading your answer, I'm not sure if it is clear or obvious for most
> users how the workflow between the Gentoo infra <-> Github infra
> functions so maybe we should explain it one more time: [...]

> 4) How do we merge it? We do *NOT* make use of the "Merge" button Github
> offers (and never will). Why? Changes would get lost in the wind if we
> did so, since the repository sitting on the Github infra is merely a
> mirror. Instead, we pull each PR into our own local copy of the Gentoo
> git repository hosted at https://gitweb.gentoo.org/repo/gentoo.git/ and
> then merge them.

FWIW I understood the github sequence... but in this particular context 
was discussing gerrit specifically, not github.  But not everyone might 
have understood it, so it doesn't hurt repeating in any case.

> Now, with this explanation out of the way, I'm not sure what you mean by
> the "security threat" issue you've brought up your email.
> 
> Gerrit is a code-review web platform that CAN allow commits to be
> merged, but this privilege has to be granted to specific users (like
> Github). It is really up to us and how infra want to manage merging. It
> doesn't make Gerrit less or more secure IMHO. This is a biased argument.

But... while individual gerrit-registered users get commit grants, it's 
actually the (non-hardened/non-audited java) gerrit instance controlling 
authentication and doing the merges, using the single /system/ gerrit 
user.  The authentication and merges don't go thru the well audited and 
on gentoo infra, hardened, system user authentication, it's the much 
softer (from infra's viewpoint) stack of code, both java runtime and 
gerrit java code, that's doing the merges there, with only the one actual 
system user (the one gerrit runs as) doing the merges into gerrit's copy 
of the git repo.  From the posts I've seen, they'd be far more 
comfortable if the individual commits were by individual system level 
users, authenticated via hardened system authentication, not the stack of 
gerrit/java code with who knows what vulns, running on a publicly 
accessible server where those vulns are to some degree exposed to the 
world as the same gerrit subsystem parsing potentially untrusted world-
submitted content that could trigger those vulns is doing the 
authentication as well.

Tho as I said, if no actual commits could be done via gerrit, so its copy 
of the repo is effectively one-way synced to it from the gentoo master 
repo, similar to the way github's repo copy is only one-way synced from 
the master repo and user submitted commits are pulled to local and 
committed/pushed from there, that would lessen the direct danger to some 
degree.  But that would lessen the utility/convenience to some degree as 
well.

Meanwhile, it would still only deal with one of the two security-related 
factors that it's my understanding have gentoo infra vetoing the gerrit 
idea entirely.  The other one, that they simply don't trust java, and 
gerrit is java based, remains unaddressed, and AFAICT unaddressable.  Tho 
it's possible I read that wrong or remember it wrong.  But to verify that 
either way would have to be done directly by infra, and their attention 
resources are limited, thus my attempt to explain.

But if you look at the back list, doing a search on gerrit, you'll see 
what infra (and others) actually said, unfiltered by my admittedly 
imperfect relaying.  Perhaps that will change things, but I obviously 
don't believe so or I'd not be taking the pains to try to pass on what I 
understood to be their take on things.

OTOH, to this point the biggest gerrit booster has been a non-dev gentoo 
user.  Your boosting as a dev could improve the chances some, but it'll 
still be a pretty tough row to hoe.

The other alternative would be to get someone to donate the hardware and 
third-party administrate an instance for gentoo, bypassing infra for the 
most part as they wouldn't be controlling the hardware, but while gerrit 
is OSS and thus more GSC compliant, such an instance still wouldn't be 
gentoo controlled, and the resources available would be far lower than 
github, so the effective trade would be a small single-instance that's 
likely less longterm reliable but OSS, against the global level but 
proprietary resources of github, so while a different tradeoff, it'd 
hardly be a better or more reliable one.  Which pretty much leaves us 
exactly where we were, with gerrit/java up against a wall of infra 
opposition that's going to be hard to break down.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


Reply via email to