-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publish app on f-droid #566
Comments
you could build the app using your own keystore, for now we don't have the apk available for download |
@sedrubal - apk files are provided now for official released versions on our GitHub releases page: https://github.com/mattermost/mattermost-mobile/releases |
Thanks, this helps a lot. But bringing the app to fdroid would help even more... |
Yep an official release on F-Droid would help |
It seems that there is problems for building mattermost apk on f-droid |
Does Mattermost depend on GCM/Play Services? It looks like it does. |
@marmistrz it does for push notifications |
@enahum this means that for Mattermost to get accepted into F-Droid it would either have to have another notification system, e.g. by polling, idle TCP or web sockets. (idle TCP is what XMPP uses). |
And web sockets are what Signal uses I think. Also Riot. They are a lot of great OSS that use GCM/FCM/Play Services but also have the option to compile for F-Droid without those libs using alternatives implementations. ;) |
I would be very interested in a version without Play Services, even if it means having no push notifications. |
Very interested too (even if it's without notification), I use it at school instead of Slack :) @IzzySoft maybe you could do something in the meantime? ;) |
@Poussinou you certainly thought about something like this? Yes, I could indeed. But someone should have an eye on that riskware thingy VT reports, maybe. And as for the official repo: a different flavor without those Google dependencies would certainly help. |
Yep, that was what I thought about :) |
@Poussinou sure. Or just go here: https://gitlab.com/IzzyOnDroid/repo and file an issue with the data, like it's done for F-Droid as well 😉 |
We patched the old Mattermost Classic app to remove Google Play dependencies: https://gitlab.com/fdroid/fdroiddata/blob/f6758e60af063658e8b6d38aa1c3ba1f2a3b718b/metadata/com.mattermost.mattermost/play-services.patch But the new React app is harder to patch because two libraries require Play services: |
I patched mattermost-mobile so it could be included in F-Droid: https://gitlab.com/fdroid/fdroiddata/blob/ef9895cd885c90fb0d6f4c4b3955f34f61f6ac65/metadata/com.mattermost.rnbeta/play-services.patch However, the F-Droid team is not willing to maintain this patch in the long run. So would the Mattermost team accept a PR to add a Gradle build flavor that builds without Play dependencies? |
Hi @Rudloff, if it can be done conditionally, we'd certainly accept a PR for it. Preferably, it would be configured using an environment variable like we use to enable and disable Sentry integration at build time https://github.com/mattermost/mattermost-mobile/blob/master/android/app/build.gradle#L82 |
Great! |
Those might also work. I'm not too familiar with them myself, so I was just suggesting what I've used in the past. |
Any plan to provide an alternative to GCM? But couldn't https://github.com/mattermost/mattermost-push-proxy "simply" use https://github.com/goiiot/libmqtt (MQTT v3.1.1/5.0, Go, Apache2) as a notification backend. For reference: Other software, same topic: |
Note that implementing custom push channels is really challenging on newer Android devices (especially Chinese flavors like Xiaomi and Huawei) because of all the energy management functionality, doze mode etc. Most probably you'll get a lot of complaints of pushes not arriving because the network connection or the push service was killed in the background. If you provide a version without GCM integration, I think Polling would be the better solution (since it's much easier to debug). |
@dbrgn Hi, totally impossible to guess, where you have that knowledge/experience from… 😄 |
@hmhealey @jasonblais Since you don't want to merge #1686 at the moment, I worked on a different approach for our F-Droid package. We would fetch your source code, remove the non-free dependencies with Would you be OK with us building and distributing the app this way? (It is basically the same method we already use for Mattermost Classic.) |
Thanks @Rudloff - appreciate the thoughtfulness. We'll be meeting to discuss the changes as a team later this week. |
Hi @Rudloff - first and foremost, I want to say we all appreciate your thoughtfulness and time you've put in supporting the F-Droid package. It's great to see such dedication from community members like yourself. To answer your question: building and distributing the F-Droid package as you described is certainly okay. What we discussed further is what steps can Mattermost take to better support the package distribution. One suggestion is to create a channel on our community server (http://pre-release.mattermost.com/core) for F-Droid. This channel could be used by our team to communicate updates and changes made for the Mattermost mobile apps that might affect the F-Droid package. This has worked quite well with other open-source projects such as Matterhorn, a terminal client for Mattermost. Would you be open to creating this channel at http://pre-release.mattermost.com/core ? In the future, if the distribution of the app through f-droid gains a lot of popularity via downloads and upvotes of the UserVoice feature proposal, and is regularly maintained, we can re-consider incorporating the support for f-droid into the Mattermost mobile apps themselves. Let me know if you have any questions. Thank you again for your eagerness to contribute. |
Thank you @enahum, I am really glad we could find common ground. I am totally OK with joining a channel about this. (My username on https://pre-release.mattermost.com/ is rudloff.) |
Is not over 100 already quite a lot? |
This... I can't even... TheWidlarzGroup/react-native-video#2454 |
Ok, let's postpone the video stuff, that has issues beyond this scope, for now, so back off to 1.47.2. VT report looks almost ready, https://www.virustotal.com/gui/file/48c1681dce23c1e7853ef125fd96a6f550761e4454e021544568618aef194109/details so I'm close Recipe so far after a lot of trial and error:
...so this builds but, crashes on start after the splash :(, log here: https://gist.github.com/licaon-kter/052f88e19782ae4ec4ac270701f1c0bd Next, will rm more notifications files ( eg. wix/react-native-notifications#207 ) for starters. /LE: comparing APKs I don't see any missing .so's, reanimated one is kinda 3x smaller though. |
Note to future me, don't use |
Is there any ETA when F-Droid release happen? I'm kinda suprised this issue is 5 years old. |
My effort can't really go further as I'm not the app developer. I'm happy that I got it to build, but... from here on this needs a dev touch. |
Would be very nice, if someone from dev team join a hand. I think it wouldn't take more than 1 MD to preprare it from team member.. |
I want to have a try but I got
when |
@linsui my recipe above or? Did you read #566 (comment) yet? |
Oh, my fault. I was thinking 8.11.0 is older that 8.5.5... |
Merged thanks to @linsui ref: https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11589 |
There is something strange though, version in PlayStore is 2.0.0 (and has been for a while now), which introduced multiserver support. Does 1.55 also have that? If so, why the different version numbers? If not, where is 2.0.0 source/release? |
See the readme. |
I am in the process of moving my NGO to Mattermost seeing the state of F-droid releases, it doesn't seem like that's a wise move. I don't want to recommend our members to install a tracker-filled application and F-droid is the only option. Is my analysis correct? What would be needed to improve this situation?
@linsui I haven't been able to find what you mean. I opened an issue about this. |
The readme said that
Now the v2 branch is the default one but there is still no tag for the v2 versions. We can try to build the new versions. I'm not a mattermost user so I don't know if it's good enough. |
I kept looking here but no tag, so I didn't bother to test. I can try to update and test asap. |
That's great. Sorry for the confusion. Let's hope there the build goes well 🤞. |
Started to update the recipe for 2.0.0 (fyi 1.56.0 builds fine):
but I had to stop since react-native-in-app-review depends on non-FOSS libs: https://github.com/MinaSamir11/react-native-in-app-review/blob/master/android/build.gradle#L56-L57 Also this fail when building reanimated
|
2.0.0 will come to F-Droid soon thanks to @linsui , but not recommended yet so users are not updated unless they opted in for "unstable versions" or "beta versions (F-Droid Client 1.16)". Will promote to recommended when this is tagged here (feel free to ping us). Of note, we've also split the APK into "per arch" APKs so each is now 50Mb or less. For this to work we've bumped versionCode as ref: https://gitlab.com/fdroid/fdroiddata/-/commit/7c0f7023efb492171a229db587cab681824b8494 /LE: fix typo |
Tagged and updated recipe: https://gitlab.com/fdroid/fdroiddata/-/commit/7297f48cfe8eb6ef90af5369f2fd35d528688849 |
I assume this can be closed as DONE? https://f-droid.org/en/packages/com.mattermost.rnbeta/ |
We're excited to see our app on f-droid; however, the f-droid version is community maintained and not officially supported or tested by Mattermost. You are most welcome to discuss this on the Mattermost Community Server (we have an f-droid channel), and we encourage you to share f-droid updates on the Mattermost Discussion Forum site. With all that being said, since the objective of this issue seems met, and I see agreement on the thread, I will mark it as done. |
Does that mean you'll clean up a flavor that won't be |
@licaon-kter sadly, quite the opposite I guess 😅 |
Could the apk be published (signed) directly in the repo/releases so that you can install with Obtainium without f-droid even? |
@einarpersson you mean with Google proprietary libs? |
Sorry I am a bit new to the android ecosystem. I guess I am talking about the version that is published on f droid? But I now understand that that is an unofficial fork right now. Anyhow: The reason I wanted Mattermost for my team(s) was to get away from Slack, Google etc. as much as possible. I cannot imagine I am the only one thinking like that. And then being able to use something like Obtainium to install apps (like Mattermost) directly from repository is exactly what I want. |
As the issue title says... But you can always get Mattermost from F-Droid directly, why install Obtainium but not F-Droid Client instead? 🙂
It is, because F-Droid cleans up non-FOSS libs by Google used for Push and etc |
Summary
Some users don't have google play store but f-droid. Is it possible to provide free builds (with only free and open source libraries)? I don't know if it's possible to build this app with the tools provided by f-droid...
The text was updated successfully, but these errors were encountered: