Jigsaw-Code / Intra

An experimental tool that allows you to test new DNS-over-HTTPS services on Android
Apache License 2.0
1.5k stars 259 forks source link

Distribute on F-Droid? #9

Open paulcmal opened 6 years ago

paulcmal commented 6 years ago

Hi! Like many people i'm not using the Play Store (or any Google services) on my Android phone, but I'm very interested in trying out DNS over HTTPS on my phone.

I would like to compile the project, but i think it would be nice to distribute the application outside of Google. F-Droid is a free-software app manager for Android. The main repo at f-droid.org contains only free software, and there may be a few steps to meet the inclusion policy.

Is this something you would be willing to do ? Thanks for building intra :)

paidfocusgroups commented 6 years ago

I'm sure the "F" in F-Droid means free.....

😎

mtimvik commented 5 years ago

It would be Great if I can install this app from F-droid.

TPS commented 5 years ago

I've RFP'ed @ F-Droid, but this usually takes several months to publish (even if build is perfectly suited), due to lack of volunteers & hardware.

TPS commented 5 years ago

@Jigsaw-Code So far, there are a # of initial concerns w/ this, mostly due to proprietary (mostly Google) components.

cjhenck commented 5 years ago

Hi all - thanks for the feedback.

If someone is able to create a PR that would enable us to easily create an F-Droid build with each release while maintaining existing functionality for the Play Store then we'd be happy to consider merging it.

TPS commented 5 years ago

So, the current source is nixed due to the 🤖/scanner's concerns, so, as @cjhenck mentioned, work is required to comply w/ F-Droid.

osdroid commented 5 years ago

Ohh by looking at the scanner concerns, as far as I can see it, the only problem is the use of firebase? (which also requires gms)? And the google decision not to use external repositories? If those are the problems, I think it can be worked out quite easily...

bemasc commented 5 years ago

Intra uses Firebase so that we can get notified if the app is performing poorly or crashing. If you want to produce a build where all Firebase functionality is removed or stubbed-out, that should be straightforward to do.

paulcmal commented 5 years ago

Intra uses Firebase so that we can get notified if the app is performing poorly or crashing.

So basically disabling telemetry would produce a self-contained free-software build that would meet F-Droid's requirements, or am i missing something?

cjhenck commented 5 years ago

I'm not very familiar with F-Droid's requirements, but that seems to be their primary concern.

Ilia1 commented 5 years ago

hmm, if you use the gun, the policy f-droid will not be violated? or another from this list

cjhenck commented 5 years ago

We don't use firebase for the database, but as before we are open to someone creating a firebase-free branch or build. It should be fairly straightforward.

WPFilmmaker commented 4 years ago

Are there any updates on this? The ticket on gitlab pointed out by TPS is closed and f-droid has no intra app :/

TPS commented 4 years ago

The most current release on GPlay has the same concerns, so F-Droid has no reason to reconsider.

cjhenck commented 4 years ago

I want to reiterate that we're willing to accept patches to make an F-Droid compatible build. This should be as simple as adding an intermediate class for FirebaseAnalytics and having it perform no operation in a new build flavor

linsui commented 2 years ago

I open an MR in F-Droid side. https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11000 It works but I thought it would be cleaner to add a flavor here. I'd like to also add fastlane here.

I want to reiterate that we're willing to accept patches to make an F-Droid compatible build. This should be as simple as adding an intermediate class for FirebaseAnalytics and having it perform no operation in a new build flavor

@cjhenck After 3 years, is that still vaild? I thougth I need to sign a CLA? Can I send a patch to you instead?

cjhenck commented 2 years ago

I want to reiterate that we're willing to accept patches to make an F-Droid compatible build. This should be as simple as adding an intermediate class for FirebaseAnalytics and having it perform no operation in a new build flavor

@linsui:

@cjhenck After 3 years, is that still vaild?

Yes, if it were controlled by a flag/build flavor. (We wouldn't want to remove firebase for the main build, so the changes would need to be enabled/disabled.)

I thougth I need to sign a CLA? Can I send a patch to you instead?

Yes, you need to sign a CLA for us to accept it. May I ask the concern with the CLA? Is it that it requires a Google account?

If you made a fork with an appropriate license (the existing license is Apache 2) then maybe we could incorporate the changes. (Assuming it's not too much work.)

linsui commented 2 years ago

Yes, you need to sign a CLA for us to accept it. May I ask the concern with the CLA? Is it that it requires a Google account?

I don't have that. I did have one but now it requires my phone number so I can't access it anymore.

If you made a fork with an appropriate license (the existing license is Apache 2) then maybe we could incorporate the changes. (Assuming it's not too much work.)

Sounds good to me. Thanks!

linsui commented 2 years ago

@cjhenck https://github.com/linsui/Intra/tree/fdroid I create a fork with fdroid flavor and fastlane structure.

rugk commented 2 years ago

welll… then maybe first (try to) contribute that back upstream? (i.e. create a PR) Otherwise, you may open issues on your fork, maintain it and then publish it on F-Droid…

linsui commented 2 years ago

@rugk The CLA is the problem.

Yes, you need to sign a CLA for us to accept it. May I ask the concern with the CLA? Is it that it requires a Google account?

If you made a fork with an appropriate license (the existing license is Apache 2) then maybe we could incorporate the changes. (Assuming it's not too much work.)

licaon-kter commented 2 years ago

Does the official APK get this positive too? https://www.virustotal.com/gui/file/6cc447027c798c1ce43c2d8edb855236ffcdebbcd2f1b8a1009c428a8e78ec5e/details

eighthave commented 2 years ago

About CLAs, they are a contract. This CLA is a custom document put together by Google's very expensive lawyers to protect Google. The first reasonable step to getting unpaid contributors to sign such a document would be to offer funds for legal counsel. Otherwise, people are either being forced into signing it, or just blindly trusting Google and hoping for the best.

linsui commented 2 years ago

I merged the MR with downstream patches. Anyone who has a Google account and can sign the CLA feels free to upstream them. Thanks!

ignoramous commented 2 years ago

@linsui where is outline-go-tun2socks being pulled from for Intra on F-Droid (particularly, how is it built?)? Its APK size is 12MB, when I expected it to be higher because gomobile should be building an outline-go-tun2socks lib per arch target (x86, x64, arm64, and arm32) and that can't be just 12MB?

linsui commented 2 years ago

See https://gitlab.com/fdroid/fdroiddata/-/commit/1e2cb715a2acc6132eb40ae96c42a68c7d684e15#f9241e17bfd1ddc18e18fd31d7b986cae8d85812_0_64 The tun2soucks aar in this repo is 10MB. I see no problem. The gomobile files are there. You can unzip the apk and check them.

-rw-rw-rw-  0.0 unx  5437048 b- defN 81-Jan-01 01:01 lib/arm64-v8a/libgojni.so
-rw-rw-rw-  0.0 unx  5237076 b- defN 81-Jan-01 01:01 lib/armeabi-v7a/libgojni.so
-rw-rw-rw-  0.0 unx  5303120 b- defN 81-Jan-01 01:01 lib/x86/libgojni.so
-rw-rw-rw-  0.0 unx  5722936 b- defN 81-Jan-01 01:01 lib/x86_64/libgojni.so
cjhenck commented 2 years ago

Hi @linsui - I'm slightly concerned about needing to update near-duplicate versions of similar files. I was hoping there might be some way to use mocks, though I can't find any off-the-shelf mocks for Firebase analytics other than for javascript/typescript. Apologies for the late engagement.

linsui commented 2 years ago

@cjhenck Some apps use their own mock but I don't know if there if any standalong implementation. How about this method: https://github.com/zhanghai/MaterialFiles/blob/f13a397ad5f86b8e60cbdf14c2f510f887b7a411/app/src/main/java/me/zhanghai/android/files/provider/archive/archiver/ArchiveException.kt#L8?