-
-
Notifications
You must be signed in to change notification settings - Fork 455
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
F-Droid can't build #6455
Comments
According to TeamNewPipe/NewPipeExtractor#1066, the dependency might need to be lowercased to In CI (gh actions) of this repository, it sometimes passes and sometimes fails with the error you mentioned, I love deterministic build failures... I hope I can find time for looking at it tomorrow. |
Can you please try building from the latest commit (1d4304c)? This works for me now after clearing the IDEA caches. |
LibreTube has used that dependency for 2 years now, I don't see the issue? |
New scanner code picked it up. Just |
@Bnyro for what it's worth, I try to build the versions since 1.25.1 and fail with the same error. With v0.26.0 it is
Not sure if maybe switching to the latest release including that commit (v0.24.3 was release 3 days ago) might solve that issue? |
Indeed it might be a good idea to switch to their latest stable release now, we previously required an unreleased version due to breaking changes from YouTube. |
Thus we either need to drop that dependency or get the |
If you have a commit with that, and an APK built from that commit, feel free to give me a ping to check for RB again (that was why I tried to build, see Reproducible Builds, special client support and more at IzzyOnDroid – currently 354 apps (29.1%) are RB here already). |
@Bnyro drop ye UpstreamNonFree means that upstream has non free but F-Droid has all free because it cleans up the non-free before building There's never a non-free to build from. |
Thanks @Bnyro! If you have an APK built from that commit with your workflow, I can check if it's RB if you want (so we're prepared for the next release and can have the "green shield up"). |
Sure, I'll send you a build this evening 👍 |
The universal apk: app-universal-release.zip, built from 2d66a6a. |
That was not build from the commit you specified, @Bnyro 😉 -rw-r--r-- 0.0 unx 56 b- 51 defN 1981-01-01 01:01:02 a18242e2 META-INF/com/android/build/gradle/app-metadata.properties
- -rw-r--r-- 0.0 unx 120 b- 118 defN 1981-01-01 01:01:02 fd28c097 META-INF/version-control-info.textproto
- -rw-r--r-- 0.0 unx 11663 b- 11663 stor 1981-01-01 01:01:02 eaa2c9cd assets/dexopt/baseline.prof
+ -rw-r--r-- 0.0 unx 120 b- 118 defN 1981-01-01 01:01:02 d47bfabf META-INF/version-control-info.textproto
+ -rw-r--r-- 0.0 unx 11656 b- 11656 stor 1981-01-01 01:01:02 ee9c069c assets/dexopt/baseline.prof
-rw-r--r-- 0.0 unx 292 b- 292 stor 1981-01-01 01:01:02 227b7cba assets/dexopt/baseline.profm
-rw-r--r-- 0.0 unx 2422680 b- 1141281 defN 1981-01-01 01:01:02 57021890 classes.dex
-rw-r--r-- 0.0 unx 673128 b- 286620 defN 1981-01-01 01:01:02 58f32d66 classes2.dex
- -rw-r--r-- 0.0 unx 5822264 b- 2621671 defN 1981-01-01 01:01:02 4f352f35 classes3.dex
+ -rw-r--r-- 0.0 unx 5822272 b- 2621689 defN 1981-01-01 01:01:02 230e9716 classes3.dex
-rw-r--r-- 0.0 unx 5019616 b- 2382937 defN 1981-01-01 01:01:02 c9aacb69 lib/arm64-v8a/libcronet.119.0.6045.31.so it was built from 9458b55 according to -rw-r--r-- 0.0 unx 120 b- 118 defN 1981-01-01 01:01:02 fd28c097 META-INF/version-control-info.textproto
- -rw-r--r-- 0.0 unx 11663 b- 11663 stor 1981-01-01 01:01:02 eaa2c9cd assets/dexopt/baseline.prof
+ -rw-r--r-- 0.0 unx 11656 b- 11656 stor 1981-01-01 01:01:02 ee9c069c assets/dexopt/baseline.prof
-rw-r--r-- 0.0 unx 292 b- 292 stor 1981-01-01 01:01:02 227b7cba assets/dexopt/baseline.profm
-rw-r--r-- 0.0 unx 2422680 b- 1141281 defN 1981-01-01 01:01:02 57021890 classes.dex
-rw-r--r-- 0.0 unx 673128 b- 286620 defN 1981-01-01 01:01:02 58f32d66 classes2.dex
- -rw-r--r-- 0.0 unx 5822264 b- 2621671 defN 1981-01-01 01:01:02 4f352f35 classes3.dex
+ -rw-r--r-- 0.0 unx 5822272 b- 2621689 defN 1981-01-01 01:01:02 230e9716 classes3.dex
-rw-r--r-- 0.0 unx 5019616 b- 2382937 defN 1981-01-01 01:01:02 c9aacb69 lib/arm64-v8a/libcronet.119.0.6045.31.so Marginally better. Let's check the Dex… Hm, strange. OK, according to your Github workflows you build on Ubuntu 24 using JDK-17. I've been building on Debian bookworm with JDK-17. Should be close enough, but wouldn't be the first time this made a difference – so let me make another run on Ubuntu. We have 22.04 here ( Looking closer at the dex diff, it doesn't really look like something related to a specific JDK or OS mismatch. I'm attaching it here for you, maybe it gives you a better idea than it gives me: dex.diff.gz |
PS: a guess would be a "dirty tree" (local changes) or left-over artifacts from previous build. Can we exclude those here? |
Oh, I didn't think a merge commit would matter 😌 I'm building releases on my machine locally, not via workflows, but still I'm using OpenJDK 17. Possibly, as you said, there might be some leftovers from previous builds, I'll try my luck again when I get to have time (sorry for possible delays). |
No prob. When building locally, it's a good idea to insert |
@IzzySoft same commit as before (9458b55), built on Void Linux using OpenJDK 17 and a "cleaned" build environment. |
"upstream_signed_apk_sha256": "0312167fd80c653e4f5cb16f53cfbdd9fdc07b4223a2b6487055e1ef827858ac",
"built_unsigned_apk_sha256": "69ff7344aacd6654d2d6728c5b62e95efeb786eda45b78fef27de36cd0e976df",
"signature_copied_apk_sha256": "0312167fd80c653e4f5cb16f53cfbdd9fdc07b4223a2b6487055e1ef827858ac" That means RB 🥳 Congrats! PS: Please let me know when it's available as release, so I establish it with my builder here. Thanks! |
Awesome, thanks for your guidance! |
There are alternative cronet implementations that are ABI compatible and FOSS. This is the cronet-embedded dependency. Why does this matter when the resulting binary doesn't use any non-free code? The non-free code is used at compile-time and never at runtime. https://github.com/androidx/media/blob/1a7da45dd9c6419a43fab95132ed0aa0999300aa/libraries/datasource_cronet/build.gradle#L27 |
Ask yourself this: can you build that lib without that non-FOSS code? If not... it's not FOSS |
Yes you can, I just did this in my fork to test this: https://github.com/FireMasterK/LibreTube/tree/media3-cronet |
@FireMasterK that's not what I've asked 🤷 but thanks for providing a solution maybe 👍 |
@IzzySoft v0.27.0 was released just now: https://github.com/libre-tube/LibreTube/releases/tag/v0.27.0 🎉 @licaon-kter Cronet was removed with v0.27.0 (#7015), I assume the F-Droid builders will automatically continue updating the app now? |
@Bnyro thanks! RB confirmed for all 3 APKs, update pulled in manually already (well, triggered manually, framework took care for the rest). But… could you please take care for that blob? Easily achieved with a minor addition to your android {
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
} For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains. More details can be found e.g. here: Ramping up security: additional APK checks are in place with the IzzyOnDroid repo. Thanks in advance! |
What's the difference between them, now that the native libs have been dropped? Hint: None it seems. There I was wondering why I only found 2 APK files when expecting 6 (2 for each ABI, your build and ours). Cannot tell for the x86 as we've skipped them here, but both ARM + universal are identical. |
Yes, chances are high that they're the same now that Cronet has been dropped. However I know some people that have their Obtainium configured to download APKs from GitHub releases and probably some of them picked specific architectures, thus I'd prefer to continue publishing all the individual APKs for user convenience. |
It's crazy that Google includes such blobs by default in your APKs, I couldn't have guessed that (but yeah, it's Google...). |
They are byte-identical. Run
Fine with me. The IoD repo is pinned to the "universal" – but even if it would pick one of the other APKs, that would be fine as only their names differ 😉
Yeah, in a way. But remember they consider themselves to be the only trusted source ("thou shalt not have other stores beside me") – and their "PlayProtect" throws a big alert on (some) installs from other sources just because of them not being in their toy shop…
Thanks! 🤗
Yes, of course!
Let me answer that with one of "my standard rules": "Never replace what has already been distributed." The current APKs are already "out in the wild": in the IoD repo, and also in multiple of our builders. None of those would fetch APKs from the same release again, as that's already marked as "we have this". So whenever an urgent replacement is needed, rather make a new (maintenance) release. Only if there are security implications (or similar strong reasons), remove the APKs from the affected release and make a new one. Thanks a lot! |
Yes, of course!
Sure, I didn't mean to replace the current APKs :) Thanks for all your help, especially with reproducible builds, very much appreciated ❤ |
I'd say we just wait for the next release, @Bnyro – feel free to give me a ping then to confirm all is fine. And thanks for your help, too! 🤗 |
I'm a bit confused at the "drop cronet" text because I see cronet here: https://github.com/libre-tube/LibreTube/blob/v0.27.0/app/build.gradle.kts#L118-L120 I see cronet here: https://github.com/libre-tube/LibreTube/blob/v0.27.0/gradle/libs.versions.toml#L60C48-L60C99
and cronet is build from non-FOSS libs: https://mvnrepository.com/artifact/androidx.media3/media3-datasource-cronet/1.4.1 |
can we reopen? |
Indeed I removed it everywhere in the app's code and 2 cronet dependencies, only missed the data source. Removed with the latest commit. |
So you say I can sed these lines as not needed so we can proceed with this version too? |
Yeah, true |
Done, thanks |
Describe your suggested feature
ref: https://gitlab.com/fdroid/fdroiddata/-/jobs/7760790503#L379
Other details
No response
Acknowledgements
/LE: fyi https://gitlab.com/fdroid/fdroiddata/-/commit/f3e76bdabb388c9a7a197388af5222bb01d8a91c
The text was updated successfully, but these errors were encountered: