puutaro / CommandClick

"another history" browser in android: has transparent UI, gif URL history, Ubuntu, and unique addon
https://apt.izzysoft.de/fdroid/index/apk/com.puutaro.commandclick
GNU General Public License v3.0
112 stars 4 forks source link

Reproducible Builds fail with v1.4.2 #18

Open IzzySoft opened 1 week ago

IzzySoft commented 1 week ago

At IzzyOnDroid we support Reproducible Builds (see: Reproducible Builds, special client support and more at IzzyOnDroid). Trying for yours, I was able to successfully generate the APK using ./gradlew assembleRelease, but the resulting APKs were not identical:

  -rw-r--r--  0.0 unx     4925 b-     4925 stor 1981-01-01 01:01:02 5757ea25 assets/dexopt/baseline.prof
- -rw-r--r--  0.0 unx      405 b-      405 stor 1981-01-01 01:01:02 ae0ff18d assets/dexopt/baseline.profm
+ -rw-r--r--  0.0 unx      402 b-      402 stor 1981-01-01 01:01:02 a2afe7e6 assets/dexopt/baseline.profm
  -rw-r--r--  0.0 unx  9490012 b-  3691127 defN 1981-01-01 01:01:02 fe53024c classes.dex

Comparing the two profiles, you can see they have the same contents just in different order:

 profile_idx=0
+  profile_key='classes3.dex'
+  num_type_ids=6650
+  num_class_ids=0
+profile_idx=1
   profile_key='classes2.dex'
   num_type_ids=10230
   num_class_ids=0
-profile_idx=1
+profile_idx=2
   profile_key='classes.dex'
   num_type_ids=10081
   num_class_ids=464
-profile_idx=2
-  profile_key='classes3.dex'
-  num_type_ids=6650
-  num_class_ids=0

This is something easy to fix, but needs to be fixed on your end.

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

Looking forward to your reply!

puutaro commented 1 week ago

In other words, Should I version up after re-build release code ?

IzzySoft commented 1 week ago

Yes, please make that part of a new release then (not replacing and existing one). A ping once that's ready is much appreciated then :smiley:

obfusk commented 1 week ago

This is something easy to fix, but needs to be fixed on your end.

I would recommend upgrading Android Gradle Plugin to 8.1.0 or later instead of using the workaround.