Skip to content
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

Closed
sedrubal opened this issue May 24, 2017 · 111 comments
Closed

Publish app on f-droid #566

sedrubal opened this issue May 24, 2017 · 111 comments
Labels
F-Droid Issues related to community-built F-droid app

Comments

@sedrubal
Copy link

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

@enahum
Copy link
Contributor

enahum commented May 26, 2017

you could build the app using your own keystore, for now we don't have the apk available for download

@lfbrock
Copy link

lfbrock commented Jul 13, 2017

@sedrubal - apk files are provided now for official released versions on our GitHub releases page: https://github.com/mattermost/mattermost-mobile/releases

@sedrubal
Copy link
Author

Thanks, this helps a lot. But bringing the app to fdroid would help even more...

@Poussinou
Copy link

Yep an official release on F-Droid would help

@jpggithub
Copy link

It seems that there is problems for building mattermost apk on f-droid
See https://f-droid.org/wiki/page/com.mattermost.mattermost and https://forum.f-droid.org/t/monthly-development-reports/166/13

@marmistrz
Copy link

Does Mattermost depend on GCM/Play Services? It looks like it does.

@enahum
Copy link
Contributor

enahum commented Oct 30, 2017

@marmistrz it does for push notifications

@marmistrz
Copy link

@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).

@ArchangeGabriel
Copy link

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. ;)

@Rudloff
Copy link

Rudloff commented Nov 7, 2017

I would be very interested in a version without Play Services, even if it means having no push notifications.

@Poussinou
Copy link

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? ;)

@IzzySoft
Copy link

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

@Poussinou
Copy link

Yep, that was what I thought about :)
@IzzySoft Are you ok if I ping you when I find an Android app that is not (yet) in the official F-Droid repo and has .apk available for download, so that you can include them in your own repo?

@IzzySoft
Copy link

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

@Rudloff
Copy link

Rudloff commented Apr 24, 2018

@Rudloff
Copy link

Rudloff commented May 6, 2018

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
I had to remove the native Youtube player and all the GCM (push) functions.

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?

@hmhealey
Copy link
Member

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

@Rudloff
Copy link

Rudloff commented May 11, 2018

Great!
We usually use build variants but I guess an environment variable would work too.
I will try to work on a PR next week if I have enough free time.

@hmhealey
Copy link
Member

Those might also work. I'm not too familiar with them myself, so I was just suggesting what I've used in the past.

@drzraf
Copy link

drzraf commented Jul 21, 2018

Any plan to provide an alternative to GCM?
Couldn't MQTT be a promising alternative protocol?
AFAIU https://github.com/mattermost/mattermost-webrtc/blob/master/Dockerfile#L32 uses https://github.com/meetecho/janus-gateway --disable-mqtt (which would otherwise provide support for MQTT using https://www.eclipse.org/paho/clients/c/)

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.
That would offer (much) more flexibility way for self-hosted Mattermost instance to provide mobile push-notificaftions ( @coreyhulen) which is currently harmed by the fact that a Firebase key harcodes a unique link between app-id and notification currently.
[The alternative would be to open Mattermost push proxy to 3rd-parties Mattermost instances...]

For reference:
https://github.com/mqtt/mqtt.github.io/wiki/public_brokers
Ability to override GCM key at runtime

Other software, same topic:
RocketChat/Rocket.Chat/issues/2071
element-hq/riot-android/issues/1066
signalapp/PushServer/issues/2 / signalapp/Signal-Android/issues/1000
https://ring.cx/en/news#push-notifications-a-new-feature-added-to-ring-project

@dbrgn
Copy link

dbrgn commented Aug 3, 2018

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

@rugk
Copy link

rugk commented Aug 21, 2018

@dbrgn Hi, totally impossible to guess, where you have that knowledge/experience from… 😄

@Rudloff
Copy link

Rudloff commented Sep 15, 2018

@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 sed and then build the APK.
(You can see the changes we would make here: https://gitlab.com/fdroid/fdroiddata/blob/da75e134e5da9dc20d1b83185e815faa74b38118/metadata/com.mattermost.rnbeta.yml#L39)

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

@jasonblais
Copy link

Thanks @Rudloff - appreciate the thoughtfulness. We'll be meeting to discuss the changes as a team later this week.

@enahum
Copy link
Contributor

enahum commented Sep 25, 2018

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.

@Rudloff
Copy link

Rudloff commented Sep 25, 2018

Thank you @enahum, I am really glad we could find common ground.
We will now proceed to building and publishing the package.

I am totally OK with joining a channel about this. (My username on https://pre-release.mattermost.com/ is rudloff.)

@rugk
Copy link

rugk commented Sep 25, 2018

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

Is not over 100 already quite a lot?

@licaon-kter
Copy link

This... I can't even... TheWidlarzGroup/react-native-video#2454

@licaon-kter
Copy link

licaon-kter commented Feb 13, 2022

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:

  - versionName: 1.47.2
    versionCode: 377
    commit: d563075c0e3cb21918f9452996a6b813194f04c2
    subdir: android/app
    sudo:
      - sysctl fs.inotify.max_user_watches=524288
      - curl -Lo node.tar.xz https://nodejs.org/dist/v16.2.0/node-v16.2.0-linux-x64.tar.xz
      - echo "e134c8738761ab908aac3b62efa4865d8a7c73e40cc7758c6e99244921696216 node.tar.xz"
        | sha256sum -c -
      - tar xJf node.tar.xz
      - cp -a node-v16.2.0-linux-x64/. /usr/local/
      - npm i -g npm@latest
      - npm -g install yarn
    init:
      - pushd ../..
      - sed -i -e "/fs.existsSync('dist')/,+2d" scripts/generate-assets.js
      - mkdir -p dist/assets
      - sed -i -e 's:84xbA6yRt+pEbYk/OmM9sbJQp7PkSAgqvn0N/QXuj1RKR+upxdAa6vTbTTBA+XweECN6xebCWncGJJiqWrtR1g==:xqr3JVKbdU38+uDYP6p+EENRg/fR2EP2Z9k3CKacDI7RRWKXKeHuB0yRdPsgZuI7XCrp31mU1fGb9Ni5HJYozQ==:g'
        package-lock.json
      - popd
      - npm install --ignore-scripts
    patch:
      - device-info-non-foss.patch
    gradle:
      - yes
    srclibs:
      - react-native-reanimated@2.2.2
    rm:
      - rm ../../patches/react-native-youtube*
      - app/components/post_list/post/body/content/youtube/
      - node_modules/xdate/build/compiler.jar
      - node_modules/socketcluster/
      - node_modules/shaka-player/third_party/closure/compiler.jar
      - node_modules/.bin/socketcluster
      - node_modules/react-native/template/
      - node_modules/jetifier/lib/
      - node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdRefreshHandlerService.java
      - node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdListenerService.java
      - node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmToken.java
    prebuild:
      - pushd ../..
      - npx patch-package --error-on-fail
      - sed -i -e '/react-native-youtube/d' package.json
      - sed -i -e '/(isYoutubeLink(/,+8d' -e '/youtube/d' app/components/post_list/post/body/content/index.tsx
      - sed -i -e '/bintray/d' node_modules/@rudderstack/rudder-sdk-react-native/android/build.gradle
      - sed -i -e '/maven {/,+3d' node_modules/react-native-document-picker/android/build.gradle
      - sed -i -e '/firebase-messaging/d' node_modules/react-native-notifications/lib/android/app/build.gradle
      - sed -i -e '/google-services/d' node_modules/react-native-notifications/lib/android/build.gradle
      - sed -E -i '/installreferrer/,+11d' node_modules/react-native-device-info/android/build.gradle
      - sed -i -e '/hasPermission/d' -e '/tokenFetchIntent/d' -e '/FcmInstance/d' -e '/FirebaseApp/'d node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsPackage.java
      - popd
      - "sed -i -e 's/bundleCommand: \"ram-bundle\",/bundleCommand: \"ram-bundle\"\
        , nodeExecutableAndArgs: [\"node\", \"--max-old-space-size=12000\"],/' -e\
        \ '/firebase/d' -e '/detox/d' -e '/splits {/,+7d' -e '/applicationVariants/,+12d'\
        \ build.gradle"
      - sed -i -e '55,57d' ../build.gradle
      - cd $$react-native-reanimated$$
      - yarn install
    scanignore:
      - android/build.gradle
      - node_modules/hermes-engine
      - node_modules/jsc-android
      - node_modules/react-native/android
      - node_modules/@react-native-community/masked-view/android/build.gradle
      - node_modules/@react-native-community/netinfo/android/build.gradle
      - node_modules/@react-native-community/async-storage/android/build.gradle
      - node_modules/react-native-device-info/android/build.gradle
      - node_modules/react-native-localize/android/build.gradle
      - node_modules/react-native-navigation/lib/android/build.gradle
      - node_modules/react-native-notifications/lib/android/build.gradle
      - node_modules/react-native-permissions/android/build.gradle
      - node_modules/react-native-safe-area-context/android/build.gradle
      - node_modules/react-native-screens/android/build.gradle
      - node_modules/react-native-share/android/build.gradle
      - node_modules/react-native-svg/android/build.gradle
      - node_modules/react-native-vector-icons/android/build.gradle
      - node_modules/react-native-webview/android/build.gradle
      - node_modules/detox/android/build.gradle
      - node_modules/detox/android/detox/publishing.gradle
      - node_modules/@mattermost/react-native-paste-input/android/build.gradle
      - node_modules/@react-native-cookies/cookies/android/build.gradle
      - node_modules/react-native-fast-image/android/build.gradle
      - node_modules/react-native-mmkv-storage/android/build.gradle
      - node_modules/react-native/ReactAndroid/build.gradle
    scandelete:
      - node_modules
    build:
      - pushd ../..
      - node scripts/generate-assets.js
      - ./node_modules/.bin/jetify
      - popd
      - pushd $$react-native-reanimated$$
      - gradle :assembleRelease
      - popd
      - mv $$react-native-reanimated$$/build/outputs/aar/android-release.aar ../../node_modules/react-native-reanimated/android/react-native-reanimated-65-jsc.aar
    ndk: r21e

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

@licaon-kter
Copy link

Note to future me, don't use npm@latest since 8.6.0 will fail to find deps on npm install, same issue seen on https://github.com/conversejs/converse.js so 8.5.5 is the latest you can use (for now)

@okias
Copy link

okias commented Apr 13, 2022

Is there any ETA when F-Droid release happen? I'm kinda suprised this issue is 5 years old.

@licaon-kter
Copy link

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.

@okias
Copy link

okias commented Apr 14, 2022

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

@linsui
Copy link

linsui commented Aug 4, 2022

I want to have a try but I got

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: @rudderstack/rudder-sdk-react-native@1.1.1
npm ERR! Found: react-native@0.67.2
npm ERR! node_modules/react-native
npm ERR!   react-native@"0.67.2" from the root project
npm ERR!   peer react-native@"*" from @mattermost/react-native-paste-input@0.3.6
npm ERR!   node_modules/@mattermost/react-native-paste-input
npm ERR!     @mattermost/react-native-paste-input@"0.3.6" from the root project
npm ERR!   44 more (@react-native-async-storage/async-storage, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react-native@"0.41.2" from @rudderstack/rudder-sdk-react-native@1.1.1
npm ERR! node_modules/@rudderstack/rudder-sdk-react-native
npm ERR!   @rudderstack/rudder-sdk-react-native@"1.1.1" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: react-native@0.41.2
npm ERR! node_modules/react-native
npm ERR!   peer react-native@"0.41.2" from @rudderstack/rudder-sdk-react-native@1.1.1
npm ERR!   node_modules/@rudderstack/rudder-sdk-react-native
npm ERR!     @rudderstack/rudder-sdk-react-native@"1.1.1" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

when npm install.

@licaon-kter
Copy link

licaon-kter commented Aug 4, 2022

@linsui my recipe above or? Did you read #566 (comment) yet?

@linsui
Copy link

linsui commented Aug 4, 2022

Oh, my fault. I was thinking 8.11.0 is older that 8.5.5...

@licaon-kter
Copy link

Merged thanks to @linsui ref: https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11589

@licaon-kter
Copy link

/close this https://f-droid.org/en/packages/com.mattermost.rnbeta/

@ArchangeGabriel
Copy link

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?

@linsui
Copy link

linsui commented Aug 30, 2022

See the readme.

@francisco-core
Copy link

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?

See the readme.

@linsui I haven't been able to find what you mean. I opened an issue about this.

@linsui
Copy link

linsui commented Dec 31, 2022

The readme said that

This is a work in progress branch for the next major version of the Mattermost mobile app. Once the work is completed and ready to share, this brach will be set as the default branch in this repository.

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.

@licaon-kter
Copy link

I kept looking here but no tag, so I didn't bother to test.

I can try to update and test asap.

@francisco-core
Copy link

That's great. Sorry for the confusion. Let's hope there the build goes well 🤞.

@licaon-kter
Copy link

Started to update the recipe for 2.0.0 (fyi 1.56.0 builds fine):

  - versionName: 2.0.0
    versionCode: 446
    commit: ca1f6df1c65f1f0609874afbbd9fd83dfb4d9a51
    subdir: android/app
    sudo:
      - sdkmanager 'build-tools;31.0.0' 'build-tools;30.0.3'
      - cp /opt/android-sdk/build-tools/30.0.3/lib/dx.jar /opt/android-sdk/build-tools/31.0.0/lib/dx.jar
      - cp /opt/android-sdk/build-tools/30.0.3/dx /opt/android-sdk/build-tools/31.0.0/dx
      - sysctl fs.inotify.max_user_watches=524288 || true
      - curl -Lo node.tar.gz https://nodejs.org/dist/v18.12.1/node-v18.12.1-linux-x64.tar.gz
      - echo "a8fcacb8033504e6d704bdee821f7005ee3774db25c799bcf2a13b5bda7de172  node.tar.gz"
        | sha256sum -c -
      - tar xzf node.tar.gz --strip-components=1 -C /usr/local/
      - npm -g install yarn
      - npm -g install npm@7
    init:
      - cd ../..
      - sed -i -e '/react-native-youtube/d' -e 's|git://github.com/||' package.json
      - sed -i -e "/fs.existsSync('dist')/,+2d" scripts/generate-assets.js
      - mkdir -p dist/assets
      - sed -i -e '/mmjstool":\ {/,/^    },/d' package-lock.json
      - npm install --ignore-scripts
    gradle:
      - yes
    srclibs:
      - react-native-reanimated@2.13.0
    rm:
      - ios
      - app/components/post_list/post/body/content/youtube/
      - node_modules/react-native-notifications/lib/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdListenerService.java
      - node_modules/react-native/sdks/hermesc/win64-bin
    prebuild:
      - sed -i -e '/gms/d' ../build.gradle build.gradle
      - sed -i -e 's|$rootDir.*Detox-android|https://jitpack.io|' ../build.gradle
      - sed -i -e '/bundleCommand/a nodeExecutableAndArgs:["node","--max-old-space-size=12000"],'
        -e '/firebase/d' -e '/detox/d' build.gradle
      - cd ../..
      - npx patch-package --error-on-fail
      - sed -i -e '/if (isYoutubeLink/,/^\s\{8\}}/d' -e '/YouTube/d' app/components/post_list/post/body/content/index.tsx
      - sed -i -e "/dependencies {/aimplementation 'im.conversations.webrtc:webrtc-android:104.0.0'"
        node_modules/react-native-webrtc/android/build.gradle
      - sed -i -e '/bintray/d' node_modules/@rudderstack/rudder-sdk-react-native/android/build.gradle
      - sed -E -i '/installreferrer/,+11d' node_modules/react-native-device-info/android/build.gradle
      - sed -i -e 's|maven.fabric.io/public|jitpack.io|' node_modules/react-native-math-view/android/build.gradle
      - cp node_modules/@mattermost/compass-icons/font/compass-icons.ttf assets/fonts/
      - cp node_modules/@mattermost/compass-icons/font/compass-icons.ttf android/app/src/main/assets/fonts
      - cd node_modules/react-native-notifications/lib/android/app
      - sed -i -e '/firebase-messaging/d' build.gradle
      - sed -i -e '/google-services/d' ../build.gradle
      - sed -i -e '/FcmInstanceIdListenerService/,/<service/d' src/main/AndroidManifest.xml
      - sed -i -e '/FirebaseApp/d' src/main/java/com/wix/reactnativenotifications/RNNotificationsPackage.java
      - sed -i -e '/FirebaseMessaging.getInstance/,/});/d' -e '/FirebaseMessaging/d'
        src/main/java/com/wix/reactnativenotifications/fcm/FcmToken.java
    scanignore:
      - android/build.gradle
      - node_modules/jsc-android
      - node_modules/react-native/android
      - node_modules/@react-native-community/netinfo/android/build.gradle
      - node_modules/react-native-document-picker/android/build.gradle
      - node_modules/react-native-device-info/android/build.gradle
      - node_modules/react-native-localize/android/build.gradle
      - node_modules/react-native-navigation/lib/android/build.gradle
      - node_modules/react-native-notifications/lib/android/build.gradle
      - node_modules/react-native-permissions/android/build.gradle
      - node_modules/react-native-safe-area-context/android/build.gradle
      - node_modules/react-native-screens/android/build.gradle
      - node_modules/react-native-share/android/build.gradle
      - node_modules/react-native-svg/android/build.gradle
      - node_modules/react-native-vector-icons/android/build.gradle
      - node_modules/react-native-webview/android/build.gradle
      - node_modules/detox/android/build.gradle
      - node_modules/detox/android/detox/publishing.gradle
      - node_modules/@mattermost/react-native-paste-input/android/build.gradle
      - node_modules/@react-native-cookies/cookies/android/build.gradle
      - node_modules/react-native-math-view/android/build.gradle
      - node_modules/react-native-fast-image/android/build.gradle
      - node_modules/react-native/ReactAndroid/build.gradle
      - node_modules/@mattermost/react-native-emm/android/build.gradle
      - node_modules/@mattermost/react-native-network-client/android/build.gradle
      - node_modules/@mattermost/react-native-turbo-log/android/build.gradle
      - node_modules/@mattermost/react-native-turbo-mailer/android/build.gradle
      - node_modules/@react-native-camera-roll/camera-roll/android/build.gradle
      - node_modules/react-native-create-thumbnail/android/build.gradle
      - node_modules/react-native-in-app-review/android/build.gradle
      - node_modules/react-native-linear-gradient/android/build.gradle
      - node_modules/react-native/ReactAndroid/hermes-engine/build.gradle
      - node_modules/react-native-reanimated/android/build.gradle
      - node_modules/react-native/template/android/build.gradle
      - node_modules/@stream-io/flat-list-mvcp/android/build.gradle
    scandelete:
      - node_modules
    build:
      - pushd ../..
      - node scripts/generate-assets.js
      - ./node_modules/.bin/jetify
      - popd
      - pushd $$react-native-reanimated$$
      - yarn add react-native@0.70.6
      - gradle :assembleRelease
      - popd
      - mv $$react-native-reanimated$$/build/outputs/aar/android-release.aar ../../node_modules/react-native-reanimated/android/react-native-reanimated-70-jsc.aar
    ndk: r21e

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

> Task :verifyReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
   > Android resource linking failed
     ERROR:/home/vagrant/build/srclib/react-native-reanimated/android/build/intermediates/merged_res/release/values/values.xml:2732: AAPT: error: resource android:attr/lStar not found.

@licaon-kter
Copy link

licaon-kter commented Jan 12, 2023

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 versionCode * 100 + arch, eg. arm64 ends up as 44903

ref: https://gitlab.com/fdroid/fdroiddata/-/commit/7c0f7023efb492171a229db587cab681824b8494

/LE: fix typo

@licaon-kter
Copy link

@okias
Copy link

okias commented Aug 4, 2023

I assume this can be closed as DONE? https://f-droid.org/en/packages/com.mattermost.rnbeta/

@larkox
Copy link
Contributor

larkox commented Aug 4, 2023

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.

@larkox larkox closed this as completed Aug 4, 2023
@licaon-kter
Copy link

however, the f-droid version is community maintained and not officially supported or tested by Mattermost.

Does that mean you'll clean up a flavor that won't be .beta and will be official soon? :)

@larkox
Copy link
Contributor

larkox commented Aug 4, 2023

@licaon-kter sadly, quite the opposite I guess 😅

@einarpersson
Copy link

Could the apk be published (signed) directly in the repo/releases so that you can install with Obtainium without f-droid even?

@licaon-kter
Copy link

@einarpersson you mean with Google proprietary libs?

@einarpersson
Copy link

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.

@licaon-kter
Copy link

I guess I am talking about the version that is published on f droid?

As the issue title says...

But you can always get Mattermost from F-Droid directly, why install Obtainium but not F-Droid Client instead? 🙂

But I now understand that that is an unofficial fork right now.

It is, because F-Droid cleans up non-FOSS libs by Google used for Push and etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-Droid Issues related to community-built F-droid app
Projects
None yet
Development

No branches or pull requests