lorenzovngl / FoodExpirationDates

📱 Android app to track food expiration dates 🥦🥛🍎. Built with Jetpack Compose 🧩, MVVM 🛠️, Room 🗄️, and Material You 🎨.
https://foodexpirationdates.app
MIT License
125 stars 23 forks source link

versionCode 31 introduced several proprietary components to the FOSS build #195

Open IzzySoft opened 1 month ago

IzzySoft commented 1 month ago

It looks like a mistake happened with the last release (versionCode 31), which introduced several proprietary compontents:

Offending libs:
---------------
* Firebase Data Transport (/com/google/android/datatransport): NonFreeNet
* Google Mobile Services (/com/google/android/gms): NonFreeComp
* ML Kit (/com/google/mlkit): NonFreeComp,Tracking

So I had to remove that version from IzzyOnDroid again and disable updates until this is resolved. Vague guess: You've added MLKit, and it dragged in the other dependencies? Could you please revert that for the FOSS build? Thanks in advance!

lorenzovngl commented 1 month ago

Hello, thank you for pointing out, I missed this check. I removed FOSS apks from release 2.4.0. At the moment, the latest FOSS release will be 2.3.1. Thank you.

IzzySoft commented 1 month ago

Thanks @lorenzovngl! That means I could turn update checks on again here, so once a clean FOSS build becomes available it will be pulled in automatically. Will do so shortly. Hope you can find a good replacement for MLKit there! Once you did, I'm curious what you've chosen then, which features you needed, and how well the replacement fits – to add that to my "replacement list" then: https://gitlab.com/-/snippets/1896503

IzzySoft commented 1 month ago

Just curious: is there any ETA? And while I'm here: I've tried to confirm the FOSS APK at tag v2.3.1 as Reproducible Build (see: Reproducible bulds, special client support and more in our repo), but while I was able to successfully generate the APK using ./gradlew assembleRelease, the

APK diff:

-------------------------------
--- /dev/fd/63  2024-06-26 10:58:45.989874083 +0200
+++ /dev/fd/62  2024-06-26 10:58:45.989874083 +0200
@@ -3,11 +3,11 @@
   META-INF/version-control-info.textproto
   32-bit CRC value (hex):                         016da126
   assets/dexopt/baseline.prof
-  32-bit CRC value (hex):                         fc102178
+  32-bit CRC value (hex):                         634c4ab4
   assets/dexopt/baseline.profm
   32-bit CRC value (hex):                         4753bdd7
   classes.dex
-  32-bit CRC value (hex):                         34e5a1ff
+  32-bit CRC value (hex):                         d95170ef
   DebugProbesKt.bin
   32-bit CRC value (hex):                         d5ac4dc2
   META-INF/androidx.activity_activity-compose.version
@@ -149,9 +149,9 @@
   META-INF/kotlinx_coroutines_core.version
   32-bit CRC value (hex):                         8f7d2509
   META-INF/services/F2.w
-  32-bit CRC value (hex):                         26bb2081
+  32-bit CRC value (hex):                         f31ec8bf
   META-INF/services/G2.a
-  32-bit CRC value (hex):                         24fd9ed8
+  32-bit CRC value (hex):                         d8339b7c
   convertLanguageToBoolean.properties
   32-bit CRC value (hex):                         cb58ab15
   convertLanguageToBoolean_de.properties

The diffs in the META-INF/services/* files I could fix easily (just line endings as you most likely build on Windows while we build on Linux).

The profile diff shows there are additional entries with my build:

+prof version=010 P
+num_dex_files=1
+dex_data_header 0
+  profile_key='classes.dex'
+  num_type_ids=1352
+  dex_checksum=0xd95170ef
+  num_method_ids=16072
+dex_data 0
+  num_hot_method_ids=6946
+  num_type_ids=1352
+  bitmap_size=4018

Was the APK compiled from the commit the tag points to – or might I have missed some build settings there?

We'd appreciate if you could help making your build reproducible. We've prepared some hints on reproducible builds for that.

Looking forward to your reply!

lorenzovngl commented 3 weeks ago

Hello @IzzySoft, thank you for your follow-up, but the development of the app is paused due to other things I have to do. I don't know when I can come back here.

IzzySoft commented 3 weeks ago

Ah, I see – thanks for letting me know! Hope you don't mind a heads-up every now and then (not more often than once per month of course)? Of course a ping from you, once you've picked up again, is welcome as well :wink:

That said: best success on the other tasks!

teolemon commented 2 weeks ago

Hello Pierre from @OpenFoodFacts :-) what you can do is add build flavors to the app, with one using zxing for F-Droid, and one using non-free components for the PlayStore

lorenzovngl commented 1 week ago

Hi Pierre, thanks for the suggestion. I will try to make these changes, but for now I will leave the FOSS build without the scanning feature because it will take time to be implemented. Also, I am not familiar with zxing, so I need to study it a bit. I think the updates in the next few months will be only about updating dependencies and fixing small bugs.