-
-
Save aaronmdjones/1a9a93ded5b7d162c3f58bdd66b8f491 to your computer and use it in GitHub Desktop.
-----BEGIN PGP SIGNED MESSAGE----- | |
Hash: SHA512 | |
My resignation from freenode staff | |
================================== | |
I joined the freenode staff in March 2019 [1]. | |
Before I joined the staff, Freenode Ltd was sold [2] to a person named | |
Andrew Lee as part of a sponsorship deal. The informal terms of that | |
arrangement, discussed with staff and users at the time, included that | |
Andrew would neither obtain nor exercise operational control over the | |
network, and that it would continue to be run independently by the | |
volunteer staff, and this was communicated to users clearly [3]. | |
What has become clear to us in the last few days is that we were lied to, | |
by both Andrew and christel. Contrary to public and private statements, the | |
sale included the network as a whole, something christel should not have | |
had the ability to relinquish, as most of the infrastructure is not owned | |
by her or any of us. However, Andrew has more money than us, and so we | |
cannot fight this. | |
It should have been disclosed to us, and you, that for the last 3 years (and | |
then some), we have not in fact been working with a team of volunteers, but | |
rather that we have collectively all been doing unpaid work for a company. | |
Timeline of critical events: | |
1) In early 2021, the freenode website was altered to begin prominently | |
mentioning Shells, a company that Andrew co-founded [4]. | |
This was not discussed among staff at the time. This caused some | |
disruption and considerable confusion among staff for months afterward, | |
as to how to handle user inquiries about it, of which we received many. | |
Ultimately, christel chose to resign rather than explain the situation to | |
us. | |
As an addendum, this is *extremely* irregular. All website advertising is | |
usually only found at [5]. | |
2) In early April 2021, Andrew insisted that we remove a blog post [6], | |
which was created after christel's resignation. This was also not | |
discussed. I cannot give an accurate timestamp because the history of the | |
website was rewritten to never contain the blog post in the first place, | |
so there is no commit removing it. | |
The blog post outlines a change of leadership, as we, the collective | |
staff as a whole, decided that we needed a new head of staff, and we | |
elected tomaw to that position. | |
Andrew should have no right to be concerned about who we put in charge, | |
as it was promised that he would be hands-off and let us continue to run | |
the network as we always have. | |
The blog post also outlines that we were continuing to develop a | |
replacement IRCd, Solanum [7], which we started back in September 2020. | |
Before September 2020, the development effort was being spent on upstream | |
Charybdis instead, since at least December 2019 (see [8] through [41] for | |
details, inclusive), with edk (head of our development team) doing almost | |
all of the work. The intention was that freenode would be migrating to | |
Charydis when it was ready. That plan fell apart because of unrelated | |
drama, and Charybdis was forked (again) at that point. | |
The work being done on Charybdis, and Solanum since, was in an effort to | |
make the network easier to administer, and allow for the implementation | |
of new IRCv3 features, such as message IDs (necessary for message | |
editing and deletion) and BRB/RESUME support. | |
If Andrew had concerns about what we were doing with the IRCd, he has had | |
since December 2019 to raise them. I can confidently say we've heard | |
nothing on that front, except wild delusions, such as that we were doing | |
this to merge with OFTC, which is frankly prepostorous. | |
3) In the final few days of April 2021, the freenode testnet (which was | |
being used to ready Solanum in preparation for the network's migration to | |
it) was shut down, again without discussion. | |
Attempts to discover a reason why were met with silence. Tom has not been | |
able to talk about it, but I strongly suspect that Andrew is behind it, | |
and given Tom's silence on the subject, I suspect Andrew used the threat | |
of legal force to ensure it. I have also heard rumours that a gag order | |
was sent to a large collection of OFTC staff, of all people? I cannot | |
state concretely whether that is the case, but it would not surprise me. | |
While I have not had much interaction with the IRCd side of things beyond | |
code review, with my development focus being on services instead [42], I | |
have submitted pull requests to improve it [43]. I was also one of the | |
Charybdis IRCd maintainers [44], of which Solanum is a fork. Seeing this | |
effort just disappear, and seemingly the entire line of Charybdis | |
development as a whole, is highly discouraging. | |
4) At the same time as the testnet shutdown, Andrew registered the channel | |
"#freenode-board" for unknown reasons, without prior discussion. | |
This was in the wrong namespace [45], as he was not a freenode group | |
contact, nor was he authorised to act on behalf of the freenode project. | |
However, we do not routinely enforce that only group contacts can | |
register channels in the primary namespace, and to make an exception in | |
this case would be counter-productive. | |
5) An associate and employee of Andrew, Shane Allen ("rdv" / "nirvana"), was | |
observed boasting on another network that they were soon going to become | |
a member of the freenode staff, which was unknown to freenode staff at | |
the time. | |
We elect staff members at our own discretion, and always collectively | |
discuss it first. | |
A few weeks later, they were also observed asking around for volunteers | |
to join freenode staff, an act which they did not have the capacity or | |
authorisation to do. | |
Finally, they attempted to bribe a prominent network user (and former | |
staff member) into joining their cause [46][47]. | |
6) Andrew wrote the following message in the official network support | |
channel: | |
2021-05-11T17:54:16Z <rasengan> Hey Freenode Staff! Hope you're well. A | |
message from the official board of Freenode Limited, owner of the | |
freenode IRC network: kevinp is in charge of infrastructure and has | |
been legally resolved into this position by the board of Freenode. | |
Please work with him to get his access and credentials in place | |
smoothly. | |
This is as clear a violation of the agreement as any of the incidents I | |
could have written about. | |
This was followed by this private message to myself: | |
2021-05-11T17:56:28Z <rasengan> Hey there, please review my message in | |
#freenode -- this is an official notice from the board. Compliance is | |
requested. | |
This is odd, in that I do not have, nor have I ever had, the credentials | |
and privileges necessary to act upon it, something he should have known. | |
I've made it no secret that I am not an especially-privileged staff | |
member. | |
But to make this abundantly clear: Even if I could comply, I would not. | |
It is not at all clear that he is entitled to access to any of our | |
servers or user data, and he had repeatedly refused to provide proof of | |
this when asked to do so. | |
With these circumstances in mind, giving him (or his designated | |
representatives) access would violate the trust of all of our users, and | |
would also be illegal in many of the jurisdictions in which we operate. | |
The founder of an information technology company should know this. | |
After Tom was forced to burn thousands of pounds of personal money in | |
order to respond to Andrew's attorneys, they *eventually* provided a | |
sale contract (which I have not seen). The legal opinion is that the | |
contract is valid. | |
By the way, when he mentions "the board of Freenode", he really just | |
means himself. This kind of toxic self-aggrandisement is most unwelcome. | |
7) Andrew then followed on with these messages, again to the official | |
network support channel: | |
2021-05-12T16:18:27Z <rasengan> Hi Staffers - wanted to write you all a | |
thing trying to clear up the lies going around recently, but dont want | |
to flood, so: | |
2021-05-12T16:18:28Z <rasengan> Message regarding recent events at | |
Freenode: | |
https://gist.github.com/realrasengan/88549ec34ee32d01629354e4075d2d48 | |
and Message received from tomaw: | |
https://gist.github.com/realrasengan/f569c5e4727d21eb939fff99cb9dc84c | |
2021-05-12T16:18:28Z <rasengan> Thanks for taking the time to fully | |
understand the truth. | |
None of us responded to this, as Tom was in consultation with lawyers at | |
this time, and we received advice to not interact. | |
The claims laid out in the first link are as follows: | |
A) "Shells sponsors freenode providing 3k/mo" | |
This is the first we're hearing of any money being involved. | |
Furthermore, since Andrew is the only person left in the company, | |
isn't he sponsoring himself? I'm sure there are interesting tax | |
implications in that ... | |
B) "Tomaw's team attacks christel [...] and she resigns, unable to deal | |
with the persistent harassment" | |
I was a first-hand observer to her departure. This is entirely | |
false. She left us with a 14-paragraph e-mail about it, and signed | |
off with us on good terms at the time. | |
C) "Rather than allow for a usual grace period after resignation [...] | |
Tomaw's crew abruptly cuts christel's access" | |
There is no usual grace period. When a staff member resigns, their | |
credentials and privileges are revoked. This is just good infosec | |
hygiene, and is yet again something that an information technology | |
company founder should be capable of grasping. | |
D) "Rather than wait until we speak again, Tomaw turns around and | |
changes up the staff and website." | |
Tom didn't do anything. We, the staff as a whole, collectively | |
decided that we needed a new head of staff after christel's | |
resignation, and we chose Tom for that position. | |
Furthermore, the only website change was the innocuous blog post | |
that he insisted we remove, and it wasn't written or published by | |
Tom; Fuchs is our community and social outreach person, and they | |
authored and published that post. This is indicated on the post. | |
E) "Given the millions I have injected into freenode thus far" | |
I cannot keep a straight face while reading this. The server | |
hardware is sponsored free of cost; we will occasionally receive an | |
invoice for $0, but that's only because of how the accounting | |
systems at some of our sponsors operate. I can't possibly imagine | |
that the few freenode live conferences cost more than 50k; and all | |
of the other miscellaneous expenses (like the renewal costs for the | |
domain names) are well under a few hundred pounds per year. | |
Anything he would have donated before Freenode Ltd's acquisition is | |
unknown to me, but that would have been from the position of a | |
benefactor, not a supposed owner. To try to twist this in his favour | |
in this manner turns my stomach. | |
In the interest of full disclosure (something Andrew appears not to | |
be capable of [48][49][50][51][52][53][54]), I did receive a | |
reimbursement in the amount of £41.99 when I joined freenode staff, | |
to cover the cost of a hardware multi-factor authentication security | |
token. This was used for, among other things, securing access to our | |
GitHub organisation. This money was provided by christel [55]; where | |
she obtained it from, I do not know. This is the only money that I | |
have ever seen, let alone received, that is in any way related to or | |
connected with freenode. | |
2021-05-12T16:33:17Z <rasengan> As I'm sure you have taken the time now | |
to digest the messages -- as you all know, I am the man of second, | |
third, and infinite chances. I love this world, I love freenode and I'm | |
going to continue doing everything I can to stay true to who I have | |
strived to be. This won't make me waiver. If any current or former | |
staff wishes to talk this through, don't hesitate to send me a message | |
privately. I believe a lot of what's happened here is forgivable and I | |
am more than willing to give second chances and move on. If you would | |
love to keep freenode running, we would love to have you. Please let me | |
know! | |
Andrew, we do not need your forgiveness, for we have done nothing wrong. | |
This situation is intolerable, and I suspect it is only going to get a lot | |
worse in the immediate future. | |
The freenode user base should consider very strongly that a hostile entity | |
is now in operational control over the network, and is in posession of your | |
data. | |
Given the bad faith on the part of Andrew & christel (not disclosing to us | |
the nature of ownership of the network, not providing a contract of sale | |
until forced to do so, public inflammatory statements and lies about staff | |
on the part of the former, etc.) I hereby resign from my volunteer position | |
with freenode staff, with immediate effect. I am not willing to work under | |
Andrew Lee. | |
To the remaining staff; it has been wonderful to know you all, and work with | |
you these last few years, and I hope to join you in future endeavours. | |
Please perform the usual immediate revocation of my staff credentials and | |
privileges across the network, the webserver, and the GitHub organisation; | |
and remove my subscription to the staff mailing list. I promise to not whine | |
publicly about it. | |
As a parting gift, I leave you all with this little nugget: | |
2021-03-15 21:21:47 <rasengan> I have not, am not, and will not interfere | |
with the operations of freenode outside of when asked for help | |
Sincerely, | |
Aaron Jones (amdj) | |
Former freenode staff / Development Team | |
PGP [56]: 97D5 8E60 7188 C8C9 8648 1CB7 6A2F 8980 0051 9052 | |
[1] https://github.com/aaronmdjones?tab=overview&from=2019-03-25&to=2019-03-28 | |
[2] https://find-and-update.company-information.service.gov.uk/company/10308021/officers | |
[3] https://web.archive.org/web/20170412203731/https://freenode.net/news/pia-fn | |
[4] https://www.shells.com/l/en-US/team | |
[5] https://freenode.net/acknowledgements | |
[6] https://web.archive.org/web/20210423231439/https://freenode.net/news/freenode-reorg | |
[7] https://github.com/solanum-ircd/solanum | |
[8] https://github.com/charybdis-ircd/charybdis/pull/298 | |
[9] https://github.com/charybdis-ircd/charybdis/pull/299 | |
[10] https://github.com/charybdis-ircd/charybdis/pull/300 | |
[11] https://github.com/charybdis-ircd/charybdis/pull/301 | |
[12] https://github.com/charybdis-ircd/charybdis/pull/302 | |
[13] https://github.com/charybdis-ircd/charybdis/pull/303 | |
[14] https://github.com/charybdis-ircd/charybdis/pull/304 | |
[15] https://github.com/charybdis-ircd/charybdis/pull/308 | |
[16] https://github.com/charybdis-ircd/charybdis/pull/313 | |
[17] https://github.com/charybdis-ircd/charybdis/pull/315 | |
[18] https://github.com/charybdis-ircd/charybdis/pull/316 | |
[19] https://github.com/charybdis-ircd/charybdis/pull/317 | |
[20] https://github.com/charybdis-ircd/charybdis/pull/319 | |
[21] https://github.com/charybdis-ircd/charybdis/pull/320 | |
[22] https://github.com/charybdis-ircd/charybdis/pull/321 | |
[23] https://github.com/charybdis-ircd/charybdis/pull/322 | |
[24] https://github.com/charybdis-ircd/charybdis/pull/326 | |
[25] https://github.com/charybdis-ircd/charybdis/pull/327 | |
[26] https://github.com/charybdis-ircd/charybdis/pull/328 | |
[27] https://github.com/charybdis-ircd/charybdis/pull/329 | |
[28] https://github.com/charybdis-ircd/charybdis/pull/330 | |
[29] https://github.com/charybdis-ircd/charybdis/pull/333 | |
[30] https://github.com/charybdis-ircd/charybdis/pull/334 | |
[31] https://github.com/charybdis-ircd/charybdis/pull/335 | |
[32] https://github.com/charybdis-ircd/charybdis/pull/336 | |
[33] https://github.com/charybdis-ircd/charybdis/pull/338 | |
[34] https://github.com/charybdis-ircd/charybdis/pull/344 | |
[35] https://github.com/charybdis-ircd/charybdis/pull/345 | |
[36] https://github.com/charybdis-ircd/charybdis/pull/346 | |
[37] https://github.com/charybdis-ircd/charybdis/pull/347 | |
[38] https://github.com/charybdis-ircd/charybdis/pull/352 | |
[39] https://github.com/charybdis-ircd/charybdis/pull/353 | |
[40] https://github.com/charybdis-ircd/charybdis/pull/355 | |
[41] https://github.com/charybdis-ircd/charybdis/pull/359 | |
[42] https://github.com/atheme/atheme/graphs/contributors | |
[43] https://github.com/solanum-ircd/solanum/pull/116 | |
[44] https://github.com/orgs/charybdis-ircd/people | |
[45] https://freenode.net/kb/answer/namespaces | |
[46] https://twitter.com/ariadneconill/status/1392995496403341313 | |
[47] https://distfiles.dereferenced.org/stuff/nirvana-log.txt | |
[48] https://news.ycombinator.com/item?id=25575227 | |
[49] https://news.ycombinator.com/item?id=25892692 | |
[50] https://news.ycombinator.com/item?id=26332711 | |
[51] https://news.ycombinator.com/item?id=26357681 | |
[52] https://news.ycombinator.com/item?id=26443975 | |
[53] https://news.ycombinator.com/item?id=26570656 | |
[54] https://news.ycombinator.com/item?id=26879957 | |
[55] https://imgur.com/a/UNlVRkI | |
[56] https://keys.openpgp.org/vks/v1/by-fingerprint/97D58E607188C8C986481CB76A2F898000519052 | |
-----BEGIN PGP SIGNATURE----- | |
iQIzBAEBCgAdFiEEC4pX0E/RcMwy4/jVUMJbpZCuerQFAmCk41MACgkQUMJbpZCu | |
erT8ow//Zdez9t9HcMWbjnMebkVSVvVdOl37e/PLxNsk5YWVPoU1AVVt4gSDwHij | |
Qu+M2Uzvmeu4lwJn7h9V5fHxF2N67LhXXqd3zmxmAMKDT/IGDtto9AUDzpIUIC/q | |
TIormTxm6SE4Fn2lwY+fQsv+ayVzUftqJjT9Oh6SDjrcDuJe65Ohuj5CCL/X2IpV | |
KrRsg2axO2qv9Df7vK9j1wfjnOjthl90f5mBhfs47tSmf9qhjGKvddH5UBTv/YeP | |
f8hwsjy0z8TLByOo2py5CG7rAEwwG1ruNTWH+R49Ic0FI29CXH1dRVel0z0Yng9r | |
T1hxZoSf68GiQqzIaQTfAtXf/rrVOrtl0r5ircgUT/cTmwiYsqDcRj9iPlGQJH+5 | |
3BiuNW5yBSiryAfg5U6na8y5O8PJ4il/URocQxA5onUTscopdyj3foICFP0I10fU | |
v1mTbLjvi9nh/50wiKdt+EI/KvZcMGpdgILPolhQZGaf1IJtSyNvPmo9Axw242J/ | |
kCVrNzK1NKPmBchnu8Yhf2h0RcAUL3euK31w2Cw7hYF4qwa4ZIybycmZtgJrRdQZ | |
1wRRiKMyRO8/UNdH4bhJQz+nj4uWsCZ3V+vXHtb2bMfRrN+LWjy9Yjg4zNlYIOYa | |
TwbnCkFPkIbP7slmQ1iTWislhjSfsc+3yvexM/2XY4yLoL8up8o= | |
=uJP8 | |
-----END PGP SIGNATURE----- |
What was that?
I don't recall precisely; it would have been some time in the middle of April. I don't retain channel logs, and I disconnected from freenode last week, so I have no channel buffers to scroll back through.
Was that some specific action, that made you think about the worst case for the first time?
It was when it became clear that Andrew had some kind of legal claim to the domains, and we weren't comfortable with that. In the event that he started trying to press for control we wanted somewhere to go.
I found the post that got removed.
https://web.archive.org/web/20210420073548/https://freenode.net/
If you look on the may entries, you don't see it anymore; just the previous entry from January.
It's that one, isn't it? So that would be April 18th.
the only website change was the innocuous blog post that he insisted we remove, and it wasn't written or published by Tom; Fuchs is our community and social outreach person, and they authored and published that post. This is indicated on the post.
If you compare https://freenode.net/people from Dec 25 and Apr 23 you can see that this is not true. Actually all four team heads have been replaced with other names, not only christels, and the following text has been modified.
Can you comment on that?
NB: I'm not affiliated with any side in this conflict. I just want to understand what happened.
Can you comment on that?
I was talking about the changes made since Andrew's first conversation with tomaw (EDIT: Because that's what Andrew was complaining about). Naturally, christel would have been removed, as she resigned. That was before all this kicked off.
Volunteer work without pay for a company without any knowledge of such is not new: http://blog.jwf.io/2020/04/open-source-minecraft-bukkit-gpl
What was that? Was that some specific action, that made you think about the worst case for the first time?