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

FDroid release #110

Open
sdfg2 opened this issue Mar 8, 2018 · 101 comments
Open

FDroid release #110

sdfg2 opened this issue Mar 8, 2018 · 101 comments

Comments

@sdfg2
Copy link

sdfg2 commented Mar 8, 2018

Are you planning an fdroid release?

@foobnix
Copy link
Owner

foobnix commented Mar 9, 2018

Yes, but have not time to study how to do that.
In any case you can download apk directly from beta.librera.mobi or archive.librera.mobi

@foobnix foobnix closed this as completed Mar 9, 2018
@sdfg2
Copy link
Author

sdfg2 commented Mar 9, 2018

Yeah that's what I'm doing just now, I was just wondering about the future for updating and things.

Thanks for the quick response, I'm glad things are going well for you with this :-)

@IzzySoft
Copy link

IzzySoft commented Feb 1, 2019

F-Droid maintainer here. Unfortunately, we've run into a lot of problems, so we currently cannot build this app:

(see here for details)

Both violates our inclusion citeria. Is there a chance to solve that, @foobnix?

@foobnix
Copy link
Owner

foobnix commented Feb 1, 2019

Both violates our inclusion citeria. Is there a chance to solve that, @foobnix?

Sorry but my app can't work without those jars and google play libraries.

@IzzySoft
Copy link

IzzySoft commented Feb 1, 2019

Thanks for your answer, though it is not what we had hoped for. I'll then have to close the RFP at F-Droid, as we cannot build this app in this situation.

By the way, there probably would be a way around those JARs: most of them seem to come from free software projects, so those could possibly be included as git submodules. But no such thing for the Google Play stuff. Just wondering why an eBook reader should depend on such? What is it you need from GMS that is essential? Seeing the my-google-play-services-fake directory, would such a substitute (provided e.g. via a separate build flavor) really cut off too much functionality?

@foobnix
Copy link
Owner

foobnix commented Feb 1, 2019

Google Play stuff. Just wondering why an eBook reader should depend on such?

Yes, my app used a lot third party components, like Recycle View or Card View
All of the Google stuff you can see in this file
https://github.com/foobnix/LibreraReader/blob/master/update_all.sh

Seeing the my-google-play-services-fake directory, would such a substitute (provided e.g. via a separate build flavor) really cut off too much functionality?

Yes, this flow for PRO version without Ads (cut the ads functionality :)

You can build an app without google play ads using this dependency project.

If you are ok with all of this dependencies, I can help you write the build script that can in one click download and prepare apk for PRO version or you can take it here
https://github.com/foobnix/LibreraReader/releases

Ivan

@IzzySoft
Copy link

IzzySoft commented Feb 1, 2019

Thanks, @foobnix! I've asked our "integrators" to check. To me this looks as if it could work – but never having built a single app, I cannot tell for sure.

@foobnix
Copy link
Owner

foobnix commented Feb 1, 2019

PRO version is without play-services, I don't see other violations

@IzzySoft
Copy link

IzzySoft commented Feb 1, 2019

Neither do I (if it is OK for you that we have it in F-Droid). Just thinking about "too complex builds" concerning those libraries, but as a non-dev I hardly can tell. @Rudloff could throw in his opinion, that would be more important than mine here.

@Rudloff
Copy link
Contributor

Rudloff commented Feb 1, 2019

Even if we can build a version without Play services, there is still the problem of the multiple prebuilt JARs.
We need to either:

  • Build these libraries from source.
  • Fetch them from a standard Maven repository like Maven Central or jCenter.

@foobnix
Copy link
Owner

foobnix commented Feb 1, 2019

I will prepare build script that also fetch libraries from maven.

@IzzySoft
Copy link

IzzySoft commented Feb 1, 2019

Cool, thanks! Best would AFAIK be Maven Central or JCenter. Note that not all maven repos are "trusted" by F-Droid. There's a list somewhere in the code of fdroidserver… Ah, here it is:

    allowed_repos = [re.compile(r'^https?://' + re.escape(repo) + r'/*') for repo in [
        'repo1.maven.org/maven2',  # mavenCentral()
        'jcenter.bintray.com',     # jcenter()
        'jitpack.io',
        'www.jitpack.io',
        'repo.maven.apache.org/maven2',
        'oss.jfrog.org/artifactory/oss-snapshot-local',
        'oss.sonatype.org/content/repositories/snapshots',
        'oss.sonatype.org/content/repositories/releases',
        'oss.sonatype.org/content/groups/public',
        'clojars.org/repo',  # Clojure free software libs
        's3.amazonaws.com/repo.commonsware.com',  # CommonsWare
        'plugins.gradle.org/m2',  # Gradle plugin repo
        'maven.google.com',  # Google Maven Repo, https://developer.android.com/studio/build/dependencies.html#google-maven
        ]
    ]

Uh, and forget about the s? in the regex, must be https 😉

@foobnix
Copy link
Owner

foobnix commented Feb 4, 2019

@Rudloff @IzzySoft
Please find build script for fdroid
https://github.com/foobnix/LibreraReader/tree/master/Builder/fdroid
it will build APK to the folder fdroid/release

@foobnix
Copy link
Owner

foobnix commented Feb 4, 2019

I have also added (get jars from maven)
https://github.com/foobnix/LibreraReader/blob/master/Builder/update_jars.sh

it looks like repo.spring.io and github.com is missing in your allow jars list

@Rudloff
Copy link
Contributor

Rudloff commented Feb 4, 2019

@foobnix
Copy link
Owner

foobnix commented Feb 5, 2019

@Rudloff I have fix update_jar.sh script
Is it something else I can help with publishing my app on fdroid?

@Rudloff
Copy link
Contributor

Rudloff commented Feb 5, 2019

Another problem is that the dandar3 repositories you are using contain prebuilt JARs and we don't allow that (we have no way to know if the libraries have been modified).
Would it be possible to get them from Google's repository (or build them from source but that might be too much work)?

Overall, I think it would be easier if you were using a package manager like Maven or Gradle.

I also noticed that cloudrail-si-android is not open source, so we can't include it. (But I'm a bit surprised, I thought Maven Central contained open source libraries.)

@foobnix
Copy link
Owner

foobnix commented Feb 12, 2019

@Rudloff @IzzySoft I have migrated the project to AndroidStudio
Please find "fdroid" flavor in the gradle build
The fdroid is without ads and without Cloudrail
Ivan

@foobnix foobnix reopened this Feb 12, 2019
@IzzySoft
Copy link

Thanks @foobnix! But now we have another problem:

    betaImplementation 'com.google.android.gms:play-services-ads:16.0.0'
    libreraImplementation 'com.google.android.gms:play-services-ads:16.0.0'
    pdf_v2Implementation 'com.google.android.gms:play-services-ads:16.0.0'
    ebookaImplementation 'com.google.android.gms:play-services-ads:16.0.0'
    tts_readerImplementation 'com.google.android.gms:play-services-ads:16.0.0'
    pdf_classicImplementation 'com.google.android.gms:play-services-ads:16.0.0'

GMS is proprietary, and not permitted in F-Droid. Could you make a build flavor coming without that? Further I'm not sure about Cloudrail. I vaguely remember issues with that; @Rudloff might be able to tell.

@Rudloff
Copy link
Contributor

Rudloff commented Feb 12, 2019

@IzzySoft There is a fdroid flavor that does not contain play-services-ads or cloudrail-si-android (somethingImplementation is only triggered when using the something flavor).

@IzzySoft
Copy link

@Rudloff I just wondered as the quoted part seems to be in the "general" dependencies block. I assume the "prefix" on the "implementation" keyword (e.g. "betaImplementation" → "beta") then does address the flavor – so only "fdroidImplementation" applies to the fdroid flavor, correct? In that case: 🙊 – and thanks for the hint!

@foobnix
Copy link
Owner

foobnix commented Feb 12, 2019

@Rudloff @IzzySoft
Is it something else you need from my side to publish the app?

@foobnix
Copy link
Owner

foobnix commented Feb 12, 2019

@Rudloff @IzzySoft
I have updated readme how to build mudpf

/Builder/link_to_mupdf_1.11.sh (Change the paths to mupdf and jniLibs)
./gradlew assebleFdroidRelease

@IzzySoft
Copy link

Thanks @foobnix! For build relevant things, I can't answer – Pierre must say.

@Rudloff
Copy link
Contributor

Rudloff commented Feb 13, 2019

I tried building 01d24f8 and using Gradle definitely makes it easier for us, thanks!

However, I have another problem. We remove binary files before build and link_to_mupdf_1.11.sh seems to fail because we removed Builder/jni-1.11/simd/i386/lib/jsimd_i386.a:

DEBUG: buildserver > Android NDK: ERROR:jni/simd/Android.mk:simd_i386: LOCAL_SRC_FILES points to a missing file
DEBUG: buildserver > Android NDK: Check that jni/simd/i386/lib/jsimd_i386.a exists  or that its path is correct

I see the cource for this library is in the repository, but I'm not sure how to build it.

@foobnix
Copy link
Owner

foobnix commented Feb 13, 2019

@Rudloff please find an updated build (included sources of simd)

@foobnix foobnix closed this as completed Feb 13, 2019
@Rudloff
Copy link
Contributor

Rudloff commented Feb 13, 2019

I tried 9ec9df1 and now the NDK stuff builds correctly, but I get this error:

DEBUG: buildserver > Execution failed for task ':app:processFdroidReleaseManifest'.
DEBUG: buildserver > > Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 16 declared in library [:pro] /home/vagrant/build/com.foobnix.pro.pdf.reader/pro/build/intermediates/library_manifest/release/AndroidManifest.xml as the library might be using APIs not available in 14
DEBUG: buildserver >   	Suggestion: use a compatible library with a minSdk of at most 14,
DEBUG: buildserver >   		or increase this project's minSdk version to at least 16,
DEBUG: buildserver >   		or use tools:overrideLibrary="com.foobnix.pdf.pro" to force usage (may lead to runtime failures)

@licaon-kter
Copy link

@foobnix The version issue still stands. Eg. since you don't have static version* we can't use that to pick up new releases, we need to pick them up from elsewhere where the version is more or less one step ahead, and no corresponding tag to build, so the main build server just picks up unbuildable imaginary releases.

@foobnix
Copy link
Owner

foobnix commented Apr 6, 2020

@licaon-kter
If I add something like, is it help you find static version number?

ext {
FDroidCodeNumber = 3704
FDroidVersionNumber = "8.3.33"
}

versionCode FDroidCodeNumber
versionName FDroidVersionNumber

@licaon-kter
Copy link

F-Droid reads 8.3.33 since your build.gradle says so. No tag for that yet.

The problem is that you modify the version ahead of time. The ideal situation would be that you modify version* when you Tag a release.

Adding yet another variable might help, but won't that be annoying to you? Maybe even forgotten from time to time? :)

@licaon-kter
Copy link

/close this issue as the app is actually published

@foobnix
Copy link
Owner

foobnix commented Apr 6, 2020

I will add FDroidCodeNumber and FDroidVersionNumber to the next tag 8.3.36

@foobnix
Copy link
Owner

foobnix commented Apr 6, 2020

@licaon-kter
Copy link

@licaon-kter
Copy link

@foobnix Why do you keep updating the versionName/Code for F-Droid if you never Tag actual releases?

Ref: https://f-droid.org/wiki/page/com.foobnix.pro.pdf.reader/lastbuild_3780

@foobnix
Copy link
Owner

foobnix commented May 9, 2020

@licaon-kter I think you check tags only for a new release. I update the version for testers but the release is not ready.

@licaon-kter
Copy link

The checkupdate step is just a grep, if it finds something updated it thinks you've just updated and imediately later tagged.

If you update now and tag tomorrow, running the check now will add that new version...but of course it can't build.

@licaon-kter
Copy link

If we use Tags we need static versionName/Code.

If we use HTTP (as we do for this app) we grep a file for that versionName/Code...and we trust that a proper Tag exists.

@licaon-kter
Copy link

licaon-kter commented May 9, 2020

I'll open an issue so maybe we can combine them or smth.

Also seen here: MarcusWolschon/osmeditor4android#1163

@licaon-kter
Copy link

FYI https://gitlab.com/fdroid/fdroidserver/-/issues/768

@Thewisem
Copy link

So anyone could explain why fdroid build is months old

@Thewisem
Copy link

Is none one updating it orrr

@Thewisem
Copy link

Is it the last update

@Thewisem
Copy link

So since they can't rebuild it due to errors, that is the only version on fdroid

@Thewisem
Copy link

Dame

@yephny
Copy link

yephny commented Mar 14, 2022

Any reason why this issue is still open? It seems to be resolved as the F-Droid version is up-to-date.

@ikanakova
Copy link
Contributor

ikanakova commented Aug 16, 2022

@yephny F-Droid version isn't up-to-date now again and maybe therefore there is no point in closing this issue when issue keeps repeating.

@yephny
Copy link

yephny commented Aug 16, 2022

@ikanakova Oh, I thought it was just lagging behind, which isn't uncommon in F-Droid.

@soshial
Copy link

soshial commented Sep 20, 2022

Looks like this issue is completed and should be closed? I cannot thank you enough @foobnix for your efforts to provide a clean version of your reader!

Do you mind if I kindly ask you to provide different donation opportunities (LiberaPay/OpenCollective/Github) in this repo's README and also maybe... your website.

Something like this:
image

@licaon-kter
Copy link

Yup, can close. And reopen in the future as needed :)

@rollingmoai
Copy link

Looks like this issue is completed and should be closed?

Yep seems like it, but it seems like the f-droid variant has some limitations. Can you include the PRO variant in your repo @IzzySoft? https://github.com/foobnix/LibreraReader/releases/download/8.8.76/Librera.Pro-8.8.76-uni.apk

@licaon-kter
Copy link

@rollingmoai "seems"? Which ones?

@rollingmoai
Copy link

https://f-droid.org/en/packages/com.foobnix.pro.pdf.reader

For better security, the F-Droid version, is based on the latest MuPDF 1.16.1 and does not require access to the Internet.

For the above reason, some Internet-related features of Librera Reader are missing in its F-Droid version:

  1. Access to OPDS (Calibre) Catalogs
  2. Google Drive Syncing
  3. Access to Clouds (Dropbox, Google Drive, OneDrive)
  4. Saving (sharing) pages from web browsers
  5. Rendering MathML formulas in epub3 books
  6. Access to the What's New page

@licaon-kter
Copy link

Ah, right, the stuff that's not free software or open-source.

@IzzySoft
Copy link

IzzySoft commented Apr 5, 2023

Can you include the PRO variant in your repo

Nope. For one, see the reasons @licaon-kter just gave (guess the collection of "offenders" would go beyond limits). And for the other, speaking of limits: file size is already twice the per-app limit for my repo.

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

No branches or pull requests