Trump's social network (Truth Social) is now open source due to pressure from the maintainers of Mastodon.

I have now mirrored the code on Codeberg and GitHub to keep track of changes, ease public examination, and ensure a copy stays public.

codeberg.org/TruthSocial/truth
github.com/justjosias/truth-so

I have also generated a basic diff between Mastodon v3.4.1 and Truth Social's latest code. codeberg.org/TruthSocial/diffs

Truth Social update 

Truth Social has just been launched on iOS. The latest source code snapshot is still from November 12th. They almost certainly have changed it since then. I'll update the repositories whenever the archive is updated.

Will it take perpetual legal threats to keep their modifications public?

Truth Social update + Soapbox 

I have updated the Truth Social code mirrors on Codeberg and GitHub for the purposes of public examination:

codeberg.org/TruthSocial/truth
github.com/justjosias/truth-so

I've also started tracking Truth Social's changes to Soapbox:

codeberg.org/TruthSocial/soapb

The diffs aren't ready yet. Help with finding what versions of Mastodon and Soapbox are used would be greatly appreciated.

@josias

you might want to use "diff -u" instead of diff by itself. the "unified" format is a bit more widely used

@ecmel Thank you! I didn't know about that flag until now. I have updated the file.

@josias Is the federation samewhat enabled/disabled in the code?

@didek The default configuration doesn't block it, and I don't see signs of them removing it from the source code (it's unnecessary anyway). They probably have disabled it in production though, which just requires setting `LIMITED_FEDERATION_MODE` to "true".

@josias
#TruthSocial recently launched by Donald Trump is now publishing the modifications to the original code of #mastodev, so it's no more violating the terms of the #opensource licence. That's wonderful news. 😄 And thank you for having mirrored the code on GitHub.

Note that the only reason we can see the source code to Trump’s new social network is because Mastodon was licensed under the GNU Affero General Public License.

If it had been licensed under MIT or BSD, we couldn’t have because Trump would have enclosed it.

Choose your licenses carefully if you care about freedom.

#agpl #gpl #mit #bsd #licensing #foss #openSource

@aral Indeed. As much as I wish copyleft wasn't necessary (it can be needlessly cumbersome), situations like these show how invaluable it can be.

@aral yeah, we wouldn't have it if they used regular GPL, either.
It just shows how important it is to chose the license wisely when making a new project.

I hope we'll have some "upgraded" version of the GPL in which we could enforce things like keeping the code publicly available instead of the often abused "have to provide when asked" clause.

#agpl #gpl #freesoftware #opensource

@aral of course that assumes a level of incompetence not indicated in his particular case

@josias Do you have a link to their original repo; having trouble finding it.

@aral @josias That's because there isn't one. They provided a _zip_ file.

That's why I asked if anone had set this up, and, well, Josias did it and let us know here (on fedi)

@Truck @aral Exactly. I just got it from here: truthsocial.com/open-source/

The idea is to download the ZIP periodically and see if it's been updated, if so, push it to Codeberg. That way we have some way to keep track of changes. It's not perfect by any means (I wish they'd release the commit history), but it's much better than nothing.

@josias @Truck @aral that sounds like a great opportunity to have some fun with commit messages

@josias my phone can't handle showing the diff on codeberg (browser crashes), maybe github would render it better?

@josias That seems to be "a" version. Do they have a process setup to share updated versions as they make changes in what they run or will they just fall back out of compliance again when the provided source code no longer matches?

@jxself I'm guessing they'll just fall out of compliance again. That's what Gab ended up doing after deciding to only release the compressed source rather than work in public.

Fortunately, it will be easy to remind them and for them to just put the latest code up.

Of course, this is all speculation.

@josias @clacke @codeberg , I can't seem to open that single diff file in the diff repo in a browser with cookies disabled. I thought maybe the file was huge, but it seems to be in a refresh loop of some kind.

@stevenroose
Viewing such diffs does not depend on cookies. I can't view it in my browser either, as it eats 70% of my RAM and still does not render (and then starts swapping and freezing).
@josias @clacke

@codeberg @stevenroose @clacke Yeah, the same thing happens on my browser.

Thankfully, the raw file loads: @stevenroose @clacke @codeberg Yeah, something seems to be wrong there. The raw file renders well though.

codeberg.org/TruthSocial/diffs

(I added a link to it in the readme)

@codeberg @josias @clacke You'd be surprised how many things depend on cookies though. So many websites I visit they render correctly while loading and then when loading finishes, they disappear and become all white.

@josias
any way to find out which version they based their changes on?
Looking at the current diff, I have the feeling quite some of the changes look to be between different Mastodon versions, rather that TS's changes.

@FiXato Yes, and I mentioned that in the readme. I think the actual version is a few commits ahead of v3.4.1. I'm planning on spending the time to track it down later (PRs welcome).

@josias I really appreciate that you've spent time on this already.

I somehow doubt there will be many updates to the zip file, but if there are, maybe we'll need to do some form of automation and alerting to some 'bot' account that announces changes, so we can all be informed... maybe that's just silly extra work though.

@josias
Did you (or anyone) spot any notable differences? Like, what did they work on? Or is that hard to tell?

@keunes I haven't dug through the diff that much yet, but it mostly appears to be changes like "Toot" to "Truth" and other branding stuff.

@josias haven't mastodon made any money out of this huge win?!

@cregox Nope. The software is freely available for anyone to use, as long as they keep the software free. Same went with Gab and similar forks.

Truth Social update 

@josias Thank you so much!

Truth Social update 

@josias And to this question:

"Will it take perpetual legal threats to keep their modifications public?"

I'd assume the answer is yes.

Truth Social update + Soapbox 

Thanks to @josias - can everyone here look at what new code exists here and what it might show about other tech being used? Any new technology partners that are not yet announced?

Truth Social update + Soapbox 

@josias

could they just flip a switch and federate? :(

Truth Social update + Soapbox 

@wjmaggos They could. But they'd gain nothing from doing so. Most instances would instantly block them.

Truth Social update + Soapbox 

@josias

most? I wonder. but I guess we've had that conversation too many times already...

Truth Social update + Soapbox 

@wjmaggos Yeah. Some wouldn't block it. But those ones are likely already blocked by most instances anyway.

Personally, I don't see Truth Social as anything more than just another bad fork of Mastodon set up as another walled garden with another alt-right spin.

Truth Social update + Soapbox 

@josias

we agree on what it is but not what it could be. and I am of the persuasion that unless an instance is being abusive to other instances (or not policing their users enough to prevent that), it shouldn't be blocked. that keeping the lines of communication open can change minds, and broken clocks etc.

Truth Social update + Soapbox 

@wjmaggos Oh. I see where you're coming from. I agree in part. The Fediverse can't exist without federation.

I also think many people need safe spaces to avoid harassment, abuse, and often just anxiety. There's a balance somewhere, depending on what you want out of social media and community.

Regardless, I doubt Truth Social would want to police the way their users interact with the rest of the Fediverse. Their lack of federation is good both ways.

re: Truth Social update + Soapbox 

@wjmaggos The level of blocking would be at least as bad as gab if not worse. That and there would likely be blocks on their side too, I'm not sure how much of that there was when gab federated.
@josias

re: Truth Social update + Soapbox 

@admin @josias

but as opposed to not federating at all, isn't getting blocked a lot still an improvement?

I understand wanting safe spaces, but most people don't need that. thus most servers don't need a quick-to-block policy.

I think you're right TS would have a high probability of bad netizens, but I think the fedi provides very good long-term incentives to be kind. conservatives and decentralization advocates both want to kill big social, for diff reasons.

re: Truth Social update + Soapbox 

@wjmaggos Gab decided that not federating at all was the preferable option. TS has made that decision preemptively. I suspect being blocked by and having to block many instances is a significant factor behind that. In addition to that, any server they're sufficiently compatible with that does federate is competition. If a hypothetical instance ABC isn't blocked as much and from there you can interact with accounts on TS (or gab) then you have an incentive to switch to that instance. There are lots of former Gab users on fedi now. This is good for end users who want to kill big social but not good for someone like Trump or Torba who want Twitter2 under their control. They need you in the walled garden to make money off of you.
@josias

re: Truth Social update + Soapbox 

@admin @josias

yea, I compared Facebook to the ring from Tolkien. they all say they want to destroy it but they really just want to use it. until then, they just want to use complaining about it to raise their media profile. and the side effect is that the people with the most attention, who have followers that care about these issues, never hear about the fedi, and are even locked into big social in order to follow the people who claim to hate it. ugh.

Truth Social update 

@josias Are you sure about Nov 12th? The package that I downloaded yesterday was dated 20th Feb if I am not mistaken.

Truth Social update 

@GerryT I was indeed wrong. They updated it just after I wrote that iirc, and I updated the mirrors accordingly.

@josias Can you do this again on the newest version of the Truth Social Source code post launch?

This was incredibly helpful!

@isolategab I updated the repo yesterday. There haven't been any updates since. 🙂

I can't figure out which release Truth Social is based on, so I figured it's better to wait rather than give an inaccurate diff.

Since they just published their fork of Soapbox, I'll start tracking that as well.

@isolategab @josias
still, we can't be sure the code that runs on the servers is the same as published, i mean why should we trust Trump and his entourage? maybe they're federating with gab and maybe others.

@zuz @isolategab You can never be totally sure what they're running on their servers. It's just a matter of law at that point. They are legally required to provide the source code they are running. It might be possible to demand an audit with probable cause, but I don't see that happening or necessary at the moment.

Their federation with Gab would be easy to check. Just make a burner account and try following accounts. And it's not like they'd want to hide it.

@josias
You're right about how to check, i'm surprised about "they are legally required to provide the source code they are running", are they? Is there some law requiring this?
@isolategab

@zuz @isolategab Yes, the license of Mastodon (AGPL) requires anyone who uses it to distribute the code they are running to anyone who uses the service. This includes any Mastodon instance and anything derived from it (like Truth Social and Gab).

@josias
Just didn't know, "The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server"
@isolategab

@josias @zuz @isolategab

To clarify, the license requires they publish the code. but if they are legally compelled to do so is something a court would have to determine.

The Software Freedom Conservancy is suing Vizio to compel them to release the GPLed code they are using their their TV sets.

That case would set a precedent that yelling orange fascist would have to release the source.

Sign in to participate in the conversation
FLOSS.social

For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).