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.

I have also generated a basic diff between Mastodon v3.4.1 and Truth Social's latest code.


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".

#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

@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:

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.

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.

(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.

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.

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.

Sign in to participate in the conversation

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