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

add Fdroid repo #6

Closed
pyluyten opened this issue Mar 26, 2019 · 93 comments · Fixed by #29
Closed

add Fdroid repo #6

pyluyten opened this issue Mar 26, 2019 · 93 comments · Fixed by #29

Comments

@pyluyten
Copy link

i'm fine with Play Store, but you would certainly gain users there

@fbarthelery
Copy link
Owner

I, personally, don't like the F-Droid approach regarding packaging. The fact that they recompile and re-sign the application bothers me. On some previous projects, I had some issues reported due to the distribution of an incorrect APK on their repository.

However, feel free to submit a request for packaging on the F-Droid tracker.

@Poussinou
Copy link
Contributor

I opened a Request For Packaging here: https://gitlab.com/fdroid/rfp/issues/952

@fbarthelery
Copy link
Owner

fbarthelery commented Apr 8, 2019

Thank you for submitting the RFP @Poussinou.

I'll keep this issue open until the RFP on the F-Droid tracker is closed

@infeeeee
Copy link

For those who want to install this with f-droid, it's available from IzzyOnDroid's repo: https://apt.izzysoft.de/fdroid/index/apk/com.geekorum.ttrss.free

To add the repo: https://apt.izzysoft.de/fdroid/index.php

@IzzySoft
Copy link

@fbarthelery it seems there are some issues with the F-Droid inclusion (reference). Quote:

The main remaining problem is these prebuilt libraries: https://github.com/fbarthelery/geekttrss/tree/master/libs

Firebase would be a general show-stopper (but if I understood correctly, the special flavor should exclude it). Are the sources for geekdroid available publically, so we could make that a srclib at F-Droid?

@fbarthelery
Copy link
Owner

Firebase would be a general show-stopper (but if I understood correctly, the special flavor should exclude it). Are the sources for geekdroid available publically, so we could make that a srclib at F-Droid?
Yes the free flavor exclude Firebase and other non opensource libraries.

I still have some work to do before publishing the geekdroid libraries and make it usable. (it wasn't really on my todo list). Would it be enough if I just dump the sources in a Github repository?

@IzzySoft
Copy link

as I cannot tell exactly: @Rudloff @licaon-kter ?

@licaon-kter
Copy link
Contributor

@fbarthelery yes, even better if pull them as a gitmodule or how will you use them?

@fbarthelery
Copy link
Owner

I think I'm going to keep using a prebuilt jar or use JitPack for now

@IzzySoft
Copy link

@fbarthelery with a prebuilt Jar, inclusion in F-Droid won't be possible. JitPack would be fine.

@licaon-kter
Copy link
Contributor

licaon-kter commented May 7, 2020

@fbarthelery Adding jitpack.io but still fails

* Where:
Build file '/home/strech/fdroiddata/build/com.geekorum.ttrss.free/build.gradle.kts' line: 22

* What went wrong:
Script compilation errors:

  Line 22: import com.geekorum.build.SourceLicenseCheckerPlugin
                      ^ Unresolved reference: geekorum

  Line 23: import com.geekorum.build.configureJavaVersion
                      ^ Unresolved reference: geekorum

  Line 24: import com.geekorum.build.createComponentsPlatforms
                      ^ Unresolved reference: geekorum

  Line 25: import com.geekorum.build.setupGoogleContent
                      ^ Unresolved reference: geekorum

  Line 44:         google().setupGoogleContent()
                            ^ Unresolved reference: setupGoogleContent

  Line 55:         createComponentsPlatforms()
                   ^ Unresolved reference: createComponentsPlatforms

  Line 58:     apply<SourceLicenseCheckerPlugin>()
                     ^ Unresolved reference: SourceLicenseCheckerPlugin

  Line 72:             configureJavaVersion()
                       ^ Unresolved reference: configureJavaVersion

8 errors

ignore the line number since I'm cleaning non-FOSS libs

@fbarthelery
Copy link
Owner

Sources for the com.geekorum.build package are in buildSrc. They should be compiled automatically by gradle if the buildSrc folder is present

@licaon-kter
Copy link
Contributor

Oh, didn't know...will try...

@fbarthelery
Copy link
Owner

@fbarthelery
Copy link
Owner

fbarthelery commented May 13, 2020

@licaon-kter
I published the sources of the geekdroid library here.
The master branch of Geekttrss use jitpack to get it.

Alternatively, you can set a the GEEKDROID_PROJECT_DIR in gradle.properties or as command line flags (-PGEEKDROID_PROJECT_DIR) and the build will use the sources instead of the jitpack build.

Let me know if there is anything else I can do to help.

@IzzySoft
Copy link

@fbarthelery by the way, you forgot to adjust versionCode and versionName for 1.5.0. APK still identifies as

package: name='com.geekorum.ttrss.free' versionCode='1041555' versionName='1.4.1' compileSdkVersion='29' compileSdkVersionCodename='10'

Can you please fix that (and create a new tag with an APK attached)? Thanks!

@fbarthelery
Copy link
Owner

Good catch @IzzySoft ! Looks like I uploaded an older apk instead. I edited the release to attach the correct apk.
Grab it here

Thank you

@IzzySoft
Copy link

Thanks for the fast fix @fbarthelery! Updated it in my repo (will show up in about 7 hours with the next sync).

@erazemk
Copy link

erazemk commented Jul 31, 2020

@fbarthelery I'm guessing this can be closed, since the app was successfully published to F-Droid.

@licaon-kter
Copy link
Contributor

Things got piled up, I didn't get around to retest....but no, this is not in F-Droid atm.

@erazemk
Copy link

erazemk commented Jul 31, 2020

Things got piled up, I didn't get around to retest....but no, this is not in F-Droid atm.

Oh, my bad, after checking I downloaded it from Izzy's repo.

@IzzySoft
Copy link

Looks like my repo got that popular people confusing it with F-Droid already, wow 🤣 I take that as compliment, thanks!

@erazemk
Copy link

erazemk commented Jul 31, 2020

The F-Droid app just makes it so convenient to not even have to think where the apps are coming from once you import the repos 😂, but yeah, you should totally take it as a compliment, your repo and the way you automated it are pretty cool.

@licaon-kter
Copy link
Contributor

Decentralization is an F-Droid goal, so @IzzySoft is doing a great service ;)

@IzzySoft
Copy link

So what @erazemkokot just wrote is a compliment to both 🥳 🍾 Thanks!

@licaon-kter
Copy link
Contributor

ERROR: Found unknown maven repo 'https://raw.githubusercontent.com/fbarthelery/play-services-plugins/master/repo/' at settings.gradle.kts
ERROR: Found usual suspect 'google.*play.*services' at app/build.gradle.kts
ERROR: Found usual suspect 'com(\.google)?\.firebase[.:](?!firebase-jobdispatcher|geofire-java)' at app/build.gradle.kts
ERROR: Found usual suspect 'androidx.navigation:navigation-dynamic-features' at app/build.gradle.kts

@fbarthelery
Copy link
Owner

ERROR: Found unknown maven repo 'https://raw.githubusercontent.com/fbarthelery/play-services-plugins/master/repo/' at settings.gradle.kts

I have to remove it it should not be needed anymore.

ERROR: Found usual suspect 'google.*play.*services' at app/build.gradle.kts
ERROR: Found usual suspect 'com(.google)?.firebase.:' at app/build.gradle.kts

Play services plugin is not applied on free variant. Same for firebase dependencies

ERROR: Found usual suspect 'androidx.navigation:navigation-dynamic-features' at app/build.gradle.kts

navigation-dynamic-features-* are on Apache 2 license according to this

@licaon-kter let me know if I'm wrong

@licaon-kter
Copy link
Contributor

navigation-dynamic-features-* are on Apache 2 license according to this

Is this fixed? https://issuetracker.google.com/issues/237574816?pli=1 if not, then its deps are not FOSS ;)

I have to remove it it should not be needed anymore.
Play services plugin is not applied on free variant. Same for firebase dependencies

Guess we can sed clean them

@fbarthelery
Copy link
Owner

Great! I'll publish it in one of the approved repos for next release

@fbarthelery
Copy link
Owner

I just released 1.6.5 and I think it can be the one finally going to F-droid!

I had to publish my fork of Google oss license plugin to Gradle plugin portal. As tested previously by @licaon-kter it should make the build reproducible.

I added a json file containing information about released versions. See here for details.

Let me know if further changes are required.

@licaon-kter
Copy link
Contributor

I added a json file containing information about released versions. See here for details.

Empty? https://github.com/fbarthelery/geekttrss/blob/1.6.5/versions/version_codes.json

@licaon-kter
Copy link
Contributor

Your 1.6.5 apk is built from 3383503e3cf868938d884d16a8fca298ee980a51 and not 2eb465f4c19c per https://hg.elyzion.net/geekttrss/geekttrss/file/2eb465f4c19c ?

@fbarthelery
Copy link
Owner

Empty? https://github.com/fbarthelery/geekttrss/blob/1.6.5/versions/version_codes.json

The file is updated after a release is made. So it was empty on the tag

Your 1.6.5 apk is built from 3383503e3cf868938d884d16a8fca298ee980a51 and not 2eb465f4c19c per https://hg.elyzion.net/geekttrss/geekttrss/file/2eb465f4c19c ?

Right, I guess it was a mistake on my side

@licaon-kter
Copy link
Contributor

The file is updated after a release is made. So it was empty on the tag

The version needs to be in the tagged tree, if you follow the commits maybe you can +1 ? :))

@licaon-kter
Copy link
Contributor

Come to think of it, if it's just an off-by-one (always!) then we can do +1 in the recipe

@fbarthelery
Copy link
Owner

I'm not sure I understand what you said. +1 to what ? version code?

I'm trying to improve my release workflow, so let me try to recap. For a release, we should have a commit history looking like this:

o  1325 tooling: update version_codes.json 
|
o  1324 Added tag 1.6.5 for changeset 2eb465f4c19c
|
o  1323 app: bump version to 1.6.5
|
o  1322 some previous commit

The version tag is put on 1323. I'll build the apk on 1323 (not like this release where I build on 1324).
If you get the tagged tree (1323) you won't have the updated version_codes.json, you need to get 1325.

I can make the tag after updating version_codes.json to invert 1324 and 1325 if it makes it easier. Maybe that's what you were thinking with the +1 ?

@licaon-kter
Copy link
Contributor

The tagged tree for 1323 needs to contain version.json and inside it must say... 13230000 (or whatever version code you want)

@licaon-kter
Copy link
Contributor

Eg. https://github.com/fbarthelery/geekttrss/blob/1.6.5/versions/version_codes.json should have had 1.6.5 and 165082 or whatever the version was

@fbarthelery
Copy link
Owner

Ok I think I got a release workflow that will make this doable. you'll get

o  1325 Added tag 1.6.5 for changeset
|
o  1324 tooling: update version_codes.json   [1.6.5 tag here]
|
o  1323 app: bump version to 1.6.5
|
o  1322 some previous commit

@licaon-kter
Copy link
Contributor

This builds reproducibly:

License: Unknown
SourceCode: https://github.com/fbarthelery/geekttrss
IssueTracker: https://github.com/fbarthelery/geekttrss/issues

RepoType: hg
Repo: https://hg.elyzion.net/geekttrss/geekttrss
Binaries: https://github.com/fbarthelery/geekttrss/releases/download/%v/geekttrss-%v-free-release.apk

Builds:
  - versionName: 1.6.5
    versionCode: 1066083
    commit: 3383503e3cf8
    subdir: app
    sudo:
      - apt-get update
      - apt-get install -y openjdk-17-jdk-headless
      - update-java-alternatives -a
    output: build/outputs/apk_from_bundle/freeRelease/app-free-release-universal-unsigned.apk
    prebuild: gradle clean
    build: gradle packageFreeReleaseUniversalApk

AllowedAPKSigningKeys: 3ee607c1a61b33402027589a6270bb5f6617950d1530826d1c3d1f5031394320

AutoUpdateMode: None
UpdateCheckMode: Tags

I'll make a merge request based on this, but Autoupdates need to be tested on next release I guess :)

@fbarthelery
Copy link
Owner

Sounds good 👍

I'll keep this opened until Autoupdates is fixed

@licaon-kter
Copy link
Contributor

This is needed #28 and if merged now (in hg....repo) it won't mess with Reproducibility

@fbarthelery
Copy link
Owner

Merged and pushed to hg repo

@licaon-kter
Copy link
Contributor

Oh ffs, I forgot about your rolling version code based on commit counting.... :( :)

@licaon-kter
Copy link
Contributor

licaon-kter commented Aug 2, 2023

@fbarthelery when is this downloaded? https://github.com/fbarthelery/geekttrss/blob/1.6.5/app/src/main/java/com/geekorum/ttrss/articles_list/ArticleCard.kt#L310

What is android.permission.WRITE_SYNC_SETTINGS for?

@fbarthelery
Copy link
Owner

@Preview functions are only run in Android studio to preview some ui components. They should normally be stripped from the final APK but I think I disabled stripping of unnecessary code s long time ago

Write sync settings is used to enable the mechanism to synchronize all the articles from the server to the device

@fbarthelery
Copy link
Owner

The application is now available on F-Droid. Thanks for everyone who contributed to make it happen 🙏

I'll keep this open until we test auto update for the next release.

@fbarthelery fbarthelery reopened this Aug 7, 2023
@theraspb3rry
Copy link

kind reminder that v1.6.6 hasn't been pushed to fdroid (current latest is v1.6.5). Thanks!

@licaon-kter
Copy link
Contributor

yes, because https://github.com/fbarthelery/geekttrss/blob/master/versions/version_codes.json should be sorted with highest on top...

@licaon-kter
Copy link
Contributor

manually updated now https://gitlab.com/fdroid/fdroiddata/-/commit/462a4e0477b363be764a38ea9bbe6d04d9962255 but in the next release @fbarthelery pls sort them in reverse 😄

@fbarthelery
Copy link
Owner

fbarthelery commented Feb 27, 2024

I'll think about it for next time 😄 but you should check the latest field if you can.

@licaon-kter
Copy link
Contributor

@fbarthelery the regex stuff is not that advanced

@fbarthelery
Copy link
Owner

Looks like f-droid automatically update to 1.6.7 release this time 🎉
That means I can finally close this issue ! Thanks again to everyone ! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants