I've degoogled Signal Messenger

If someone would like to maintain a FOSS fork of Signal and make the server configurable, can F-Droid include it? Then I can self-host it easily without compile it.

Good idea, however Signal includes a lot of server URLs and signing/authentication keys as well which would be quite lengthy to type in; check app/build.gradle in the source. Compiling it is quite easy though, just follow the instructions in the Dockerfile.

1 Like

Wow, there are a lot of urls. It’s difficult to input manully, but maybe it can be shared with a config file or even QR code?

Please read what has been said AND repeated in this thread and others: IT’S NOT F-Droid’s DECISION!!!111111oneone :confused:

2 Likes

I know that it not F-Droid’s decision not to include Signal. I have read almost all related links. I know that Moxie do not want that F-Droid host a Signal fork which use his server. So a Signal fork with configurable server has no relationship with OWS and their server.

1 Like

Ok, Ok, great, so link to the available server(s) please. :slight_smile:

Signal Server is open source and there’s a few topics on the Signal Community Forums where people are trying to deploy the server.

@linsui’s idea might be reasonable e.g. for enterprises wanting to deploy their own server and a FOSS client to employees, much like VPN clients load config files. It would have to be renamed too and change artwork, a bit like the Loki Project who forked Signal into Session. No idea what Moxie & Co would think of that though.

So after 5 years they are still TRYING? None succeeded yet? But it’s open source… I heard. :slight_smile:

2 Likes

IMHO this doesn’t violate freedom 0. It’s like saying ‘you violate freedom 0 because you block federation to my instance on mastodon’.

Unless everybody hosts their own server this will always be true. This can’t be the way to go…
This is why I prefer p2p solutions like Jami for example.

As I wrote, to me it’s not black or white. Both make their arguments and I can understand their points of view.

Yeah, it’s not a easy process to self-host Signal though the server is open source. Looks like OWS don’t want to make it easy to self-host Signal. But that’s another problem. No other server available does not mean that such a fork is using OWS’s server. That depends on the user. If users decide not to self-host a Signal server and just use the OWS one, it’s their choice. After all, the Signal server is open source and self-hostable. :wink:

Your instance still works, you can post and others can see, how is this analogy valid exactly?

Anyway, I’ll leave you to discuss this as you see fit, I think I’ve mentioned all the issues so you can make your own judgement. Keep in mind that: 1) Alternatives are out there (XMPP/Matrix) and 2) Any RFP will be accepted based on current Inclusion Policy and app specifics.

thanks

Agreed. Always good to have discussions and see a different point of view.

Update: My pull request for removing a few Google utility functions from the Signal codebase was merged and will be in the 4.72 series, thanks to Greyson Parrelli on the Signal team. Rest of the GMS stub code remains out of tree.

3 Likes

Good news - @valldrac has adapted the idea of these patches (and written a new set) into their fork of Signal called Molly.im and published a F-Droid repository. Look for “Molly-FOSS” for the open source build.

2 Likes

I’ve pushed a new branch 4.75.8.0-FOSS with a refactor. The code is now in a “libfakegms” library in the Signal root folder, and it uses flavor dimensions to allow mixing and matching.

You can apply it to either the Play or Website releases e.g. gradlew assemblePlayFossRelease (my recommendation, won’t auto update) or gradlew assembleWebsiteGmsRelease (builds the standard Website release with GMS binaries).

Hi
I am running Langis 4.77.3 with GrapheneOS (AOSP v.11) on my Pixel 4a and Pixel 4XL without any issue. I love it.
Up to this version the Installations were very smooth from F-droid Repo. Since this version, I can’t install any newer version from Fdroid Repo or your web download links. The cause were “parsing errors” or lately “unknown error”
I don’t have any these issues on other phones running LineageOS 16 or 17.
Also I don’t have any issue with latest Molly-FOSS and/or Molly Staging ver.4.79.3-1 FOSS…on GrapheneOS phones.
Could you please let me know what is the best suggestion or advise in my situation…or other fix. Thank you very much!

Hi bebensson, I don’t maintain Langis – please try contacting its author “Caps Lock” via their website if there’s issues. Langis currently doesn’t use these patches and still includes the Google binary blobs in its build.

Molly and my patches are very similar so you could either use that or compile/sign my patch set.

Hi tw-hx

Thanks for your prompt response and advice. I did some research and I believe your patches or Molly apk are better (cleaner) for me.
Could you please advise me, how I can compile your patch code/set on Signal apk (web version) or the right way to do it or more details. I am not programmer but I have good knowledge with Linux, Debian, Android and stupid Win. Sorry but I never patched an apk or github source code. I will welcome any useful info/links also.
Another question is what is the meaning of “Staging” term and/or difference between Molly vs Molly Staging (in this case), if you are familiar with that?? Is about Staging encrypted environment or Pre-Production release/version?
Thank you very much for understanding. Looking FWD
Cheers

Sure, I’ve basic instructions in the repo sidebar but in more detail:

  1. Install the Google Android SDK from your distro or source of choice - this site has some OSS rebuilds if that’s your thing - and any other build required packages (look at the “Reproducible Builds” file in the Signal repo for Ubuntu requirements). Make sure the Android SDK is in your $PATH and the first time you run it you have to accept its license.
  2. Clone the Signal repo into a folder and open a terminal in that folder.
  3. Run: ./gradlew assemblePlayFossProdRelease --exclude-task signProductionPlayFossRelease
  4. Use apksigner or jarsigner to sign the build which is in the app/build/outputs/apk/playFossProd/release/ folder. You generate a keystore file first then use that keystore to sign all subsequent builds (don’t delete it).
  5. Transfer the signed .APK file to your phone and install it.

P.S. “Staging” I believe refers to test builds that contact a Signal staging server rather than the real production server everyone else uses. Don’t worry about them.

Hi tw-hx

Thank you very much for prompt response, advice and instructions. I really appreciate it.
I will try it asap and I will get more skilled with this occasion. :))
Anyway, I will start follow you and your projects or all other related stuff from now on.
I wish you all the best and keep in touch.
Cheers

1 Like