mozilla-mobile / fenix

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
https://github.com/mozilla-mobile/firefox-android
Mozilla Public License 2.0
6.47k stars 1.28k forks source link

F-Droid #162

Closed dimqua closed 3 years ago

dimqua commented 5 years ago

Would be nice to have this browser available in the F-Droid repository, when it'll be released (I hope soon). That's why I should ask, do you support this idea?

┆Issue is synchronized with this Jira Task

Rudloff commented 5 years ago

I think the main problem here will be that the app uses several Maven repositories we (F-Droid) don't trust: https://github.com/mozilla-mobile/fenix/blob/92559622195f44d1f715ae002809cf6e00eacecf/build.gradle#L27

sm4rk0 commented 5 years ago

How is that solved in Fennec build? No untrusted repos? Sorry, couldn't decipher its build.gradle...

Rudloff commented 5 years ago

I think Fennec includes the Gecko source in the repository (instead of fetching prebuilt JAR files like Fenix) so we build everything from source.

okias commented 5 years ago

Is considered meanwhile provide nightly f-droid repository (something similiar to unofficial Firefox Beta repository?)

djc commented 5 years ago

Apart from the Gradle repositories, there might also be an issue with the fonts used: #1365.

sm4rk0 commented 5 years ago

That's really sad news from Mozilla. Can we try convincing them not to do so? It's also sad that there's no reply to cadeyrn's comment (please, at least give it a thumbs up if you agree).

reinhart1010 commented 5 years ago

Duplicate: https://groups.google.com/forum/m/#!topic/fenix-nightly/99AQ456ZkoU

rugk commented 5 years ago

(FYI: That google group/mailing list is private as it seems. At least, I cannot access it without login.)

reinhart1010 commented 5 years ago

That Google Group is intended for Google Play beta-testing (i.e. you must join that group to be eligible to obtain the pre-release Fenix in Google Play). Besides that, I let them know that their issues and suggestions have been listed here, including respective GitHub issue links.

Edit: Ah, sorry for those who prefer not to use any of Google products here.

dector commented 5 years ago

Can we make a list of issues that prevent releasing Fenix to F-Droid and attack them one-by-one?

dector commented 5 years ago

:arrow_up: @Rudloff @sm4rk0 I need your help with this.

Issues that prevents Fenix to be distributed via F-Droid:

anything else?

Rudloff commented 5 years ago

Some maven repositories (which?).

The problem here is that our policy only allows dependencies built from source or fetched from a trusted repository. Fenix uses dependencies from https://maven.mozilla.org/, which is not in our whitelist. We decided not to add Mozilla's repository to the list because they have included non-free dependencies like Play Services in their builds in the past.

So the solution to this would be for us to build these dependencies (mostly android-components) entirely from source, but this could be a lot of work. (And some of these components also use custom repositories and non-free dependencies...)

anything else?

Fenix uses the non-free play-services-ads-identifier library.

PS: Of course, Mozilla could also provide their own F-Droid repository with non-free builds.

dector commented 5 years ago

Thanks a lot for adding more details to this @Rudloff !

dimqua commented 5 years ago

@Rudloff could you use (and whitelist) the direct download links for all of those prebuilt dependences? GeckoView mainly.

You haven't to whitelist the whole maven repo in this case.

Rudloff commented 5 years ago

Fenix requires several dozen libraries hosted on https://maven.mozilla.org/, downloading all these manually would be very tedious (and against our policy).

poperigby commented 5 years ago

What's wrong with Maven, again?

Rudloff commented 5 years ago

The problem is not Maven itself but the fact that Fenix uses a Maven repository that is not trusted by the the F-Droid build server. (And the F-Droid contributors decided not to whitelist it.) Basically, F-Droid only allows Maven/Gradle dependencies from these repositories.

To sum up, the situation is currently stuck unless one the following things happen:

dector commented 5 years ago

Someone writes a recipe to build all the required libraries from source.

I suppose this requires some significant amount of work but doesn't seem unrealistic though. :sweat_smile:

poperigby commented 5 years ago

Can we get a Mozilla contributor here to talk about this? Seems we need their opinion.

poperigby commented 5 years ago

@bbinto added this to a milestone. I assume that means they're going to do it. Right?

dector commented 5 years ago

@PopeRigby I can't speak for Mozilla, but this issue seems solvable for me.

Fenix is in beta state for now so team is focusing on building (fast) high quality product but I believe that after releasing stable version this issue will have more attention. I think we need some to make some investigation to split this task onto smaller ones and make them easier to contribute to.

okias commented 5 years ago

@dector since Mozilla is percepted as company which focus on open-source and Fenix browser will go against this idea from beggining, it must be solved before releasing Fenix into wild.

Users should have choice to download Fenix from F-Droid and F-Droid requirements are adequate for free software, which Fenix should be.

I like reputation that Mozilla has and I'm not will settle with half-open product (aka M$ and Google style)

cadeyrn commented 5 years ago

since Mozilla is percepted as company which focus on open-source and Fenix browser will go against this idea from beggining, it must be solved before releasing Fenix into wild.

and

I like reputation that Mozilla has and I'm not will settle with half-open product (aka M$ and Google style)

With all due respect, Fenix is not a "half-open product (aka M$ and Google style)" only because it's not distributed via F-Droid. Please stay objective, such comments are not helpful at all. While I agree that it would be nice to provide Fenix via more distribution channels, it can't be a release blocker, especially since most users use the Google Play Store. The current top priority is to launch the MVP and there were really more important tasks to solve before the launch date. And if you don't trust Google (but still use Android, well…) you can download Fenix via GitHub or Taskcluster, so it's not like there's no other source for downloading Fenix.

tl;dr: It's absolutely okay to bring Fenix to F-Droid in the next months, but not a MVP release blocker at all. That's my opinion as a Fenix user (I don't work for Mozilla).

okias commented 5 years ago

since Mozilla is percepted as company which focus on open-source and Fenix browser will go against this idea from beggining, it must be solved before releasing Fenix into wild.

and

I like reputation that Mozilla has and I'm not will settle with half-open product (aka M$ and Google style)

With all due respect, Fenix is not a "half-open product (aka M$ and Google style)" only because it's not distributed via F-Droid.

It's not only about F-Droid distribution channel, it's about not being able to distribute as free software.

Please stay objective, such comments are not helpful at all. While I agree that it would be nice to provide Fenix via more distribution channels, it can't be a release blocker, especially since most users use the Google Play Store.The current top priority is to launch the MVP and there were really more important tasks to solve before the launch date. And if you don't trust Google (but still use Android, well…) you can download Fenix via GitHub or Taskcluster, so it's not like there's no other source for downloading Fenix.

Well, I don't use Android, I use AOSP platform (LineageOS), which is free and on top of it I use software as Firefox browser and other free software.

tl;dr: It's absolutely okay to bring Fenix to F-Droid in the next months, but not a MVP release blocker at all. That's my opinion as a Fenix user (I don't work for Mozilla).

My post is not about just bring Fenix to F-Droid. It's about make it free as it should be from start and then it can be easily put into F-Droid store without any pain.

I don't say I mind distributing non-completly-free version on PlayStore, but it's important to be able build it as pure free software :)

HansCronau commented 5 years ago

I'm surprised to find this is the only issue (kind of) mentioning the fact that the preview currently is listed as GSF (Google Services Framework) dependent. Given the focus on privacy I think it would make sense to follow Firefox Focus' example of being GSF independent.

To be sure: @Rudloff, is removing GSF dependency already included in one of the points on your list? And do you think would it would make a good candidate for a separate, smaller issue to solve on a path to F-Droid publication?

Rudloff commented 5 years ago

To be sure: @Rudloff, is removing GSF dependency already included in one of the points on your list?

As mentioned in https://github.com/mozilla-mobile/fenix/issues/162#issuecomment-502348681, Fenix uses one of the Play Services library. (This does not necessarily means it requires Play Services, probably that it uses them if they are available.)

st3fan commented 5 years ago

@Rudloff how does this work for Fennec, which also depends on GPS and Firebase services?

Rudloff commented 5 years ago

Fennec builds distributed by F-Droid dont include Firebase libraries.

st3fan commented 5 years ago

@Rudloff do we just need more feature flags to support f-droid?

Rudloff commented 5 years ago

A build flag or a build variant allowing us to build the app without the proprietary dependencies would be great :slightly_smiling_face:

poperigby commented 5 years ago

Doesn't that give Fenix a non-free upstream anti-feature?

Rudloff commented 5 years ago

If it is an officially supported build variant and not something we patch on our end, I'm not sure the anti-feature applies. (And it is not a blocker anyway.)

poperigby commented 5 years ago

Can we get a custom repo we can add to the F-Droid client until we get an official F-Droid release? Riot X is doing that right now. It would be a good temporary solution until this is sorted out.

sm4rk0 commented 5 years ago

@IzzySoft, could you please help?

dimqua commented 5 years ago

@thermatk (a f-droid contributor) working on this currently. He already managed to bring new Focus versions to F-Droid.

IzzySoft commented 5 years ago

@sm4rk0 if Pierre (@Rudloff) can't, I don't see how I can. And as you didn't give me context (at least saying help with what – as often as I get pinged, I cannot always catch up the entire threads), I don't know, sorry.

dimqua commented 5 years ago

@IzzySoft he probably asks for includion to your repo, but this app is too big I guess.

IzzySoft commented 5 years ago

@dimqua If that was the question, yours is the answer, yes. I don't even need to look to say that, as the size of Firefox builds is known to be far behind the limits of my repo…

sm4rk0 commented 5 years ago

Sorry for brevity, @IzzySoft. Yes, I hoped you could help by including the official binaries from this repo, but didn't know about the size limits. Thanks for everything you do!

IzzySoft commented 5 years ago

Gladly, @sm4rk0 – and be welcome to check at https://gitlab.com/IzzyOnDroid/repo as things might change (you also can use the issue tracker there to suggest new apps or report issues).

esmoak commented 5 years ago

Can we get a custom repo we can add to the F-Droid client until we get an official F-Droid release? Riot X is doing that right now. It would be a good temporary solution until this is sorted out.

@PopeRigby there is an unofficial Mozilla repo here:

https://gitlab.com/rfc2822/fdroid-firefox

I’m unsure how to contact the maintainer to find out if Fenix can/will be added. Posting in case you or anyone else is interested.

genodeftest commented 5 years ago

@PopeRigby there is an unofficial Mozilla repo here:

https://gitlab.com/rfc2822/fdroid-firefox

I’m unsure how to contact the maintainer to find out if Fenix can/will be added. Posting in case you or anyone else is interested.

Fenix builds have been added but something about the arch detection is wrong missing the arm/aarch64 builds: https://gitlab.com/rfc2822/fdroid-firefox/issues/1

genodeftest commented 4 years ago

Update: https://gitlab.com/rfc2822/fdroid-firefox provides a fully functional Firefox Preview which is regularly updated.

@PopeRigby: The maintainer has a website which is linked from his gitlab account: https://www.bitfire.at/

ildar commented 4 years ago

Wrong. rfc2822's repo is just a copy of the Mozilla build. F-Droid builds all apks from source

Bubu commented 4 years ago

@cadeyrn

With all due respect, Fenix is not a "half-open product (aka M$ and Google style)" only because it's not distributed via F-Droid.

No, as currently distributed Fenix is not half-open, it's actually proprietary software by nature of including proprietary libraries.

As long as there is no build variant without proprietary components Fenix cannot be included into F-Droid, thus distritribution via F-Droid serves as a kind of checkpoint for apps being fully FOSS which is far more important than the distribution channel itself.

Checking for com.google.android.gms or com.google.firebase classes in the final apk is a good sanity test usually, these are all part of proprietary libraries afaik.

$ unzip ./app/build/outputs/apk/geckoNightly/debug/app-geckoNightly-x86-debug.apk classes.dex
Archive:  ./app/build/outputs/apk/geckoNightly/debug/app-geckoNightly-x86-debug.apk
  inflating: classes.dex    
$ $ANDROID_HOME/build-tools/29.0.2/dexdump classes.dex | grep -E 'Class descriptor'.*('com/google/android/gms'|com/google/firebase) | wc -l
1184

:cry:

There may also be other non-google proprietary components in there as well.

A webbrowser being as complex as it is, we (F-Droid) cannot realistically maintain a foss build flavour/method ourself as we currently do for Firefox/Fennec and Focus Klar. So as long as that's not officially supported by Mozilla this cannot be included in F-Droid.

cadeyrn commented 4 years ago

You took a small part of my comment from last year out of the context…

Bubu commented 4 years ago

@cadeyrn I stumbled over your comment while reading up on this thread. I don't think I took it out of context though? But regardless my main points here are:

thermatk commented 4 years ago

In my opinion, it makes no sense to invest any of the limited time people have now into supporting a constantly changing unfinished product. When this transition phase will be over, it won't be impossible to maintain again :)

чт, 16 янв. 2020 г. в 16:31, Marcus notifications@github.com:

@cadeyrn https://github.com/cadeyrn I stumbled over your comment while reading up on this thread. I don't think I took it out of context though? But regardless my main points here are:

-

Fenix cannot be build as free software currently and until that is the case it cannot distributed on the f-droid.org repo.

A third party is very unlikely to archive this goal, so it's something that has to be solved at Mozilla.

A commandline snippet with which anyone can check if we are even close to reaching a free Fenix yet.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mozilla-mobile/fenix/issues/162?email_source=notifications&email_token=AAROO62U2BWLR3JBDXMDQS3Q6B4VVA5CNFSM4GQJHQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJEPDUY#issuecomment-575205843, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAROO6ZKRQNAOLGJY2IW5TLQ6B4VVANCNFSM4GQJHQTQ .

-- Go digital

rootkea commented 4 years ago
  • Fenix cannot be build as free software currently and until that is the case it cannot distributed on the f-droid.org repo.

I hold Mozilla in pretty high esteem. I really hope they release Fenix as Free Software.

seniorm0ment commented 4 years ago

@rootkea This, it would make me essentially not use the application and would be very frustrating to say the least. I hope good decisions are made here. I love Fennec, but it's kinda outdated and can be buggy, But I'd rather stay on it if Mozilla doesn't make good decisions towards a FOSS Fenix release.