Can anyone help me here?

Hi Everyone, I want to setup my own F-Droid Repo but it always fails and I don’t know where.

Here’s the Log:

fdroid build --all
2026-08-30 17:51:46,182 WARNING: unsafe permissions on ‘config.yml’ (should be 0600)!
2026-08-30 17:51:46,190 INFO: Building com.freetime.ssmpc:18
2026-08-30 17:51:46,193 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,193 WARNING: NoSuchPathError: build/com.freetime.ssmpc
2026-08-30 17:51:46,199 ERROR: Could not build app com.freetime.ssmpc due to unknown error: Traceback (most recent call last):
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 1208, in main
if trybuild(app, build, build_dir, output_dir, log_dir,
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
also_check_dir, srclib_dir, extlib_dir,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tmp_dir, repo_dir, vcs, options.test,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.server, options.force,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.onserver, options.refresh):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 929, in trybuild
build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 473, in build_local
common.set_FDroidPopen_env(app, build)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/common.py”, line 3402, in set_FDroidPopen_env
env[‘SOURCE_DATE_EPOCH’] = get_source_date_epoch(get_build_dir(app))
~~~^^^^^^^^^^^^^^^^^^^^^
File “”, line 714, in setitem
File “”, line 788, in encode
TypeError: str expected, not NoneType

2026-08-30 17:51:46,201 INFO: Building com.freetime.ssmpc:19
2026-08-30 17:51:46,202 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,202 WARNING: NoSuchPathError: build/com.freetime.ssmpc
2026-08-30 17:51:46,203 ERROR: Could not build app com.freetime.ssmpc due to unknown error: Traceback (most recent call last):
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 1208, in main
if trybuild(app, build, build_dir, output_dir, log_dir,
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
also_check_dir, srclib_dir, extlib_dir,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tmp_dir, repo_dir, vcs, options.test,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.server, options.force,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.onserver, options.refresh):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 929, in trybuild
build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 473, in build_local
common.set_FDroidPopen_env(app, build)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/common.py”, line 3402, in set_FDroidPopen_env
env[‘SOURCE_DATE_EPOCH’] = get_source_date_epoch(get_build_dir(app))
~~~^^^^^^^^^^^^^^^^^^^^^
File “”, line 714, in setitem
File “”, line 788, in encode
TypeError: str expected, not NoneType

2026-08-30 17:51:46,205 INFO: Building com.freetime.ssmpc:20
2026-08-30 17:51:46,205 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,205 WARNING: NoSuchPathError: build/com.freetime.ssmpc
2026-08-30 17:51:46,206 ERROR: Could not build app com.freetime.ssmpc due to unknown error: Traceback (most recent call last):
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 1208, in main
if trybuild(app, build, build_dir, output_dir, log_dir,
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
also_check_dir, srclib_dir, extlib_dir,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tmp_dir, repo_dir, vcs, options.test,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.server, options.force,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.onserver, options.refresh):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 929, in trybuild
build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 473, in build_local
common.set_FDroidPopen_env(app, build)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/common.py”, line 3402, in set_FDroidPopen_env
env[‘SOURCE_DATE_EPOCH’] = get_source_date_epoch(get_build_dir(app))
~~~^^^^^^^^^^^^^^^^^^^^^
File “”, line 714, in setitem
File “”, line 788, in encode
TypeError: str expected, not NoneType

2026-08-30 17:51:46,208 INFO: Building com.freetime.geoweather:63
2026-08-30 17:51:46,208 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,212 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,213 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,213 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,214 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:46,214 INFO: Getting source for revision 1bbb1e5dad037824954abbc92cbf5d44b5581bef
2026-08-30 17:51:49,243 INFO: commit: 1bbb1e5dad037824954abbc92cbf5d44b5581bef (SHA1: 1bbb1e5dad037824954abbc92cbf5d44b5581bef)
2026-08-30 17:51:49,243 INFO: Initialising submodules
2026-08-30 17:51:49,853 INFO: Creating local.properties file at build/com.freetime.geoweather/local.properties
2026-08-30 17:51:49,854 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:49,856 INFO: Creating local.properties file at build/com.freetime.geoweather/app/local.properties
2026-08-30 17:51:49,857 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:49,874 INFO: Running ‘prebuild’ commands in build/com.freetime.geoweather/app
2026-08-30 17:51:49,875 INFO: Set up NDK r28 (28.0.13004108)
2026-08-30 17:51:50,079 ERROR: Gradle is not found. Please config the gradle path.

forget it I just do everything manually

Do explain what you do, build or just publish? How did you install fdroidserver? Where did you put the apks? How were they named? Etc

I installed fdroidserer via Git and wanted to build every App from Scratch via fdroid build

Build in a VM or bare metal? VM via libvirt or virtualbox? Baremetal and you’ve installed all app deps?

IT we’re via WSL

I build it via WSL and I installed it via the PPA.

I did a Testbuild in the fdroiddata repo and got this

fdroiddata$ fdroid build org.fdroid.fdroid -l --server
2026-08-31 15:34:34,608 WARNING: unsafe permissions on ‘config.yml’ (should be 0600)!
2026-08-31 15:34:54,627 ERROR: Environment variable {env: serverwebroot} is not set!
2026-08-31 15:34:54,627 ERROR: serverwebroot: has blank value!
2026-08-31 15:34:55,143 INFO: Building org.fdroid.fdroid:2000041
2026-08-31 15:35:07,381 INFO: commit: 7fe32d55cc79b62f8d38bd852ebe76b50c71104c (SHA1: 7fe32d55cc79b62f8d38bd852ebe76b50c71104c)
2026-08-31 15:35:12,701 INFO: buildserver path does not exists, creating builder
2026-08-31 15:35:13,290 WARNING: The Vagrant executable cannot be found. Please check if it is in the system path.
2026-08-31 15:35:13,506 ERROR: Could not build app org.fdroid.fdroid due to unknown error: Traceback (most recent call last):
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 1208, in main
if trybuild(app, build, build_dir, output_dir, log_dir,
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
also_check_dir, srclib_dir, extlib_dir,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tmp_dir, repo_dir, vcs, options.test,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.server, options.force,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
options.onserver, options.refresh):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 927, in trybuild
build_server(app, build, vcs, build_dir, output_dir, log_dir, force)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/build.py”, line 96, in build_server
sshinfo = vmtools.get_clean_builder(‘builder’)
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/vmtools.py”, line 54, in get_clean_builder
vm = get_build_vm(serverdir)
File “/usr/local/lib/python3.14/dist-packages/fdroidserver/vmtools.py”, line 166, in get_build_vm
boxes = vagrant.Vagrant().box_list()
File “/home/jamie/.local/lib/python3.14/site-packages/vagrant/init.py”, line 736, in box_list
output = self._run_vagrant_command([“box”, “list”, “–machine-readable”])
File “/home/jamie/.local/lib/python3.14/site-packages/vagrant/init.py”, line 1047, in _run_vagrant_command
command = self._make_vagrant_command(args)
File “/home/jamie/.local/lib/python3.14/site-packages/vagrant/init.py”, line 1019, in _make_vagrant_command
raise RuntimeError(VAGRANT_NOT_FOUND_WARNING)
RuntimeError: The Vagrant executable cannot be found. Please check if it is in the system path.

2026-08-31 15:35:13,509 INFO: Build for app org.fdroid.fdroid:2000041 failed
2026-08-31 15:35:13,510 INFO: Finished
2026-08-31 15:35:13,511 INFO: 1 build failed

install vagrant and libvirt and virtmanager etc

now I get this error

(fdroidserver-env) jamie@JamiesAcer:~/repos/fdroid$ fdroid build --all
2026-08-31 20:29:43,599 WARNING: unsafe permissions on ‘config.yml’ (should be 0600)!
2026-08-31 20:29:43,600 INFO: Creating log directory
2026-08-31 20:29:43,606 INFO: Creating temporary directory
2026-08-31 20:29:43,607 INFO: Creating output directory
2026-08-31 20:29:44,384 INFO: Creating build directory
2026-08-31 20:29:44,441 INFO: Building com.freetime.ssmpc:11
2026-08-31 20:29:44,454 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:44,455 WARNING: NoSuchPathError: build/com.freetime.ssmpc
2026-08-31 20:29:44,461 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:44,462 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:44,467 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:44,468 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:44,469 INFO: Getting source for revision b4757b6a8713d0539eff9e95db0e570b00fa1177
2026-08-31 20:29:47,083 INFO: commit: b4757b6a8713d0539eff9e95db0e570b00fa1177 (SHA1: b4757b6a8713d0539eff9e95db0e570b00fa1177)
2026-08-31 20:29:47,388 INFO: Creating local.properties file at build/com.freetime.ssmpc/local.properties
2026-08-31 20:29:47,389 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:47,394 INFO: Creating local.properties file at build/com.freetime.ssmpc/app/local.properties
2026-08-31 20:29:47,395 INFO: Set up NDK r28c (28.2.13676358)
2026-08-31 20:29:47,396 ERROR: Gradle is not found. Please config the gradle path.

Hi, this should resolve your issue:

cd ~/repos/fdroid
chmod 600 config.yml

cd ..

git clone https://gitlab.com/fdroid/gradlew-fdroid.git
chmod +x ~/repos/gradlew-fdroid/gradlew-fdroid

Edit ~/repos/fdroid/config.yml file to specify gradle path:
gradle: /home/jamie/repos/gradlew-fdroid/gradlew-fdroid

cd ~/repos/fdroid
fdroid build com.freetime.ssmpc

jamie@JamiesAcer:~/repos$ cd ~/repos/fdroid
fdroid build com.freetime.ssmpc
2026-09-01 18:30:15,951 INFO: Creating log directory
2026-09-01 18:30:15,952 INFO: Creating output directory
2026-09-01 18:30:16,287 INFO: Creating build directory
2026-09-01 18:30:16,296 INFO: Building com.freetime.ssmpc:18
2026-09-01 18:30:16,301 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:16,301 WARNING: NoSuchPathError: build/com.freetime.ssmpc
2026-09-01 18:30:16,307 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:16,307 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:16,308 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:16,308 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:16,308 INFO: Getting source for revision 512cc5da10b68178680d929bcc2653894faaee09
2026-09-01 18:30:19,020 INFO: commit: 512cc5da10b68178680d929bcc2653894faaee09 (SHA1: 512cc5da10b68178680d929bcc2653894faaee09)
2026-09-01 18:30:19,324 INFO: Collecting source libraries
2026-09-01 18:30:19,324 ERROR: VCS error while building app com.freetime.ssmpc: srclib reproducible-apk-tools not found.
2026-09-01 18:30:19,330 INFO: Building com.freetime.ssmpc:19
2026-09-01 18:30:19,330 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:19,335 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:19,335 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:19,335 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:19,335 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:19,335 INFO: Getting source for revision 6a980f9dcb20f38d83d83cb4bf8ece3d7dd4985e
2026-09-01 18:30:22,356 INFO: commit: 6a980f9dcb20f38d83d83cb4bf8ece3d7dd4985e (SHA1: 6a980f9dcb20f38d83d83cb4bf8ece3d7dd4985e)
2026-09-01 18:30:22,659 INFO: Collecting source libraries
2026-09-01 18:30:22,659 ERROR: VCS error while building app com.freetime.ssmpc: srclib reproducible-apk-tools not found.
2026-09-01 18:30:22,661 INFO: Building com.freetime.ssmpc:20
2026-09-01 18:30:22,662 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:22,665 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:22,665 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:22,666 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:22,666 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 18:30:22,666 INFO: Getting source for revision c0a1ba32f16f574d32bb88223a2b97780e9b18d3
2026-09-01 18:30:23,678 INFO: commit: c0a1ba32f16f574d32bb88223a2b97780e9b18d3 (SHA1: c0a1ba32f16f574d32bb88223a2b97780e9b18d3)
2026-09-01 18:30:23,678 INFO: Initialising submodules
2026-09-01 18:30:25,186 INFO: Collecting source libraries
2026-09-01 18:30:25,186 ERROR: VCS error while building app com.freetime.ssmpc: srclib reproducible-apk-tools not found.
2026-09-01 18:30:25,188 INFO: Build for app com.freetime.ssmpc:18 failed
2026-09-01 18:30:25,188 INFO: Build for app com.freetime.ssmpc:19 failed
2026-09-01 18:30:25,188 INFO: Build for app com.freetime.ssmpc:20 failed
2026-09-01 18:30:25,188 INFO: Finished
2026-09-01 18:30:25,188 INFO: 3 builds failed

sdk_path: /home/jamie/android-sdk

apksigner: /usr/bin/apksigner

gradle: /home/jamie/repos/gradlew-fdroid/gradlew-fdroid

ndk_paths:

r28c: /home/jamie/android-sdk/ndk/28.0.13004108

repo_icon: icon.png

repo_name: Freetime Repository

repo_description: This is the Official F-Droid Repository from Freetime Maker for F-Droid. It includes Apps from Freetime Maker and others. It gets Updates from Freetime Maker directly and faster than the Official F-Droid Repository from F-Droid and includes Apps that aren’t in the F-Droid Repository yet.

repo_url: Freetime Repository

archive_older: 3

keystore: keystore.p12

keystorepass: KKKKKK

keypass: KKKKKK

repo_keyalias: fdroid

keydname: CN=Freetime Maker, OU=F-Droid

Seems to be an issue on your end.

Make sure your fdroiddata fork contains the srclibs/reproducible-apk-tools.yml file and make sure your fdroidserver is up to date just in case.

Check this documentation.

Also I hope those are not your real keystore data. If they are, please remove them and consider them compromised.

Thanks it works now

So I tried fdroid build com.freetime.geoweather and got this:

jamie@JamiesAcer:~/repos/fdroid$ fdroid build com.freetime.geoweather
2026-09-01 19:56:49,057 INFO: Building com.freetime.geoweather:63
2026-09-01 19:56:49,065 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:49,065 WARNING: NoSuchPathError: build/com.freetime.geoweather
2026-09-01 19:56:49,071 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:49,072 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:49,072 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:49,079 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:49,079 INFO: Getting source for revision 1bbb1e5dad037824954abbc92cbf5d44b5581bef
2026-09-01 19:56:54,198 INFO: commit: 1bbb1e5dad037824954abbc92cbf5d44b5581bef (SHA1: 1bbb1e5dad037824954abbc92cbf5d44b5581bef)
2026-09-01 19:56:54,199 INFO: Initialising submodules
2026-09-01 19:56:56,109 INFO: Creating local.properties file at build/com.freetime.geoweather/local.properties
2026-09-01 19:56:56,110 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:56,113 INFO: Creating local.properties file at build/com.freetime.geoweather/app/local.properties
2026-09-01 19:56:56,114 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:56,137 INFO: Running ‘prebuild’ commands in build/com.freetime.geoweather/app
2026-09-01 19:56:56,138 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 19:56:56,372 INFO: Scanning source for common problems…
2026-09-01 19:56:56,504 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
2026-09-01 19:56:56,507 INFO: Removing gradle-daemon-jvm.properties at SDK/gradle/gradle-daemon-jvm.properties
2026-09-01 19:56:56,507 INFO: Removing gradle-wrapper.jar at SDK/gradle/wrapper/gradle-wrapper.jar
2026-09-01 19:56:56,510 INFO: Creating source tarball…
2026-09-01 19:56:56,837 INFO: Building Gradle project…
2026-09-01 20:03:40,178 INFO: Successfully built com.freetime.geoweather:63 from 1bbb1e5dad037824954abbc92cbf5d44b5581bef
2026-09-01 20:03:40,195 INFO: …retrieving https://github.com/FreetimeMaker/GeoWeather/releases/download/v2.2.1/GeoWeather-v2.2.1.apk
2026-09-01 20:03:42,665 INFO: …NOT verified - /tmp/tmp8uyk1ufu/sigcp_com.freetime.geoweather_63.apk
2026-09-01 20:03:47,202 ERROR: Could not build app com.freetime.geoweather: compared built binary to supplied reference binary but failed
==== detail begin ====
signature copying failed: APK Signing Block offset < central directory offset
Comparing reference APK to unsigned APK…
Unexpected diff output:
Only in /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/META-INF: ALLE.RSA
Only in /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/META-INF: ALLE.SF
Only in /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/META-INF: MANIFEST.MF
Binary files /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/lib/arm64-v8a/libsqliteJni.so and /tmp/tmp8uyk1ufu/unsigned_com.freetime.geoweather_63/content/lib/arm64-v8a/libsqliteJni.so differ
Binary files /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/lib/armeabi-v7a/libsqliteJni.so and /tmp/tmp8uyk1ufu/unsigned_com.freetime.geoweather_63/content/lib/armeabi-v7a/libsqliteJni.so differ
Binary files /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/lib/x86/libsqliteJni.so and /tmp/tmp8uyk1ufu/unsigned_com.freetime.geoweather_63/content/lib/x86/libsqliteJni.so differ
Binary files /tmp/tmp8uyk1ufu/unsigned_binaries_com.freetime.geoweather_63.binary/content/lib/x86_64/libsqliteJni.so and /tmp/tmp8uyk1ufu/unsigned_com.freetime.geoweather_63/content/lib/x86_64/libsqliteJni.so differ
==== detail end ====
2026-09-01 20:03:47,217 INFO: Building com.freetime.geoweather:64
2026-09-01 20:03:47,218 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:47,246 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:47,247 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:47,248 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:47,248 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:47,248 INFO: Getting source for revision b9f3208f6ed9de29114f344e12b138903508b8f3
2026-09-01 20:03:50,680 INFO: commit: b9f3208f6ed9de29114f344e12b138903508b8f3 (SHA1: b9f3208f6ed9de29114f344e12b138903508b8f3)
2026-09-01 20:03:50,680 INFO: Initialising submodules
2026-09-01 20:03:51,288 INFO: Collecting source libraries
2026-09-01 20:03:54,818 INFO: commit: v0.3.0 (SHA1: dc069dc4cddf6ab5162f3ed3be1bc8a14711273f)
2026-09-01 20:03:54,820 INFO: Creating local.properties file at build/com.freetime.geoweather/local.properties
2026-09-01 20:03:54,821 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:54,821 INFO: Creating local.properties file at build/com.freetime.geoweather/app/local.properties
2026-09-01 20:03:54,822 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:54,834 INFO: Running ‘prebuild’ commands in build/com.freetime.geoweather/app
2026-09-01 20:03:54,835 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:03:54,950 INFO: Scanning source for common problems…
2026-09-01 20:03:54,983 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
2026-09-01 20:03:54,985 INFO: Removing gradle-daemon-jvm.properties at SDK/gradle/gradle-daemon-jvm.properties
2026-09-01 20:03:54,985 INFO: Removing gradle-wrapper.jar at SDK/gradle/wrapper/gradle-wrapper.jar
2026-09-01 20:03:54,988 INFO: Creating source tarball…
2026-09-01 20:03:55,304 INFO: Building Gradle project…
2026-09-01 20:08:43,391 INFO: Running ‘postbuild’ commands in build/com.freetime.geoweather/app
2026-09-01 20:08:43,406 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:43,754 INFO: Successfully built com.freetime.geoweather:64 from b9f3208f6ed9de29114f344e12b138903508b8f3
2026-09-01 20:08:43,793 INFO: …retrieving https://github.com/FreetimeMaker/GeoWeather/releases/download/v2.2.2/GeoWeather-v2.2.2.apk
2026-09-01 20:08:55,911 INFO: …NOT verified - /tmp/tmpmffet37d/sigcp_com.freetime.geoweather_64.apk
2026-09-01 20:08:59,312 ERROR: Could not build app com.freetime.geoweather: compared built binary to supplied reference binary but failed
==== detail begin ====
signature copying failed: APK Signing Block offset < central directory offset
Comparing reference APK to unsigned APK…
Unexpected diff output:
Only in /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/META-INF: ALLE.RSA
Only in /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/META-INF: ALLE.SF
Only in /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/META-INF: MANIFEST.MF
Binary files /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/lib/arm64-v8a/libsqliteJni.so and /tmp/tmpmffet37d/unsigned_com.freetime.geoweather_64/content/lib/arm64-v8a/libsqliteJni.so differ
Binary files /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/lib/armeabi-v7a/libsqliteJni.so and /tmp/tmpmffet37d/unsigned_com.freetime.geoweather_64/content/lib/armeabi-v7a/libsqliteJni.so differ
Binary files /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/lib/x86/libsqliteJni.so and /tmp/tmpmffet37d/unsigned_com.freetime.geoweather_64/content/lib/x86/libsqliteJni.so differ
Binary files /tmp/tmpmffet37d/unsigned_binaries_com.freetime.geoweather_64.binary/content/lib/x86_64/libsqliteJni.so and /tmp/tmpmffet37d/unsigned_com.freetime.geoweather_64/content/lib/x86_64/libsqliteJni.so differ
==== detail end ====
2026-09-01 20:08:59,334 INFO: Building com.freetime.geoweather:65
2026-09-01 20:08:59,335 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:59,417 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:59,418 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:59,418 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:59,419 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:08:59,419 INFO: Getting source for revision 90ee6cdb7ce31bff67e49ff7814cb9336c468262
2026-09-01 20:09:00,839 INFO: commit: 90ee6cdb7ce31bff67e49ff7814cb9336c468262 (SHA1: 90ee6cdb7ce31bff67e49ff7814cb9336c468262)
2026-09-01 20:09:00,839 INFO: Initialising submodules
2026-09-01 20:09:01,446 INFO: Collecting source libraries
2026-09-01 20:09:05,581 INFO: commit: v0.3.0 (SHA1: dc069dc4cddf6ab5162f3ed3be1bc8a14711273f)
2026-09-01 20:09:05,582 INFO: Creating local.properties file at build/com.freetime.geoweather/local.properties
2026-09-01 20:09:05,583 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:09:05,583 INFO: Creating local.properties file at build/com.freetime.geoweather/app/local.properties
2026-09-01 20:09:05,584 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:09:05,600 INFO: Running ‘prebuild’ commands in build/com.freetime.geoweather/app
2026-09-01 20:09:05,601 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:09:05,814 INFO: Scanning source for common problems…
2026-09-01 20:09:05,930 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
2026-09-01 20:09:05,934 INFO: Removing gradle-daemon-jvm.properties at SDK/gradle/gradle-daemon-jvm.properties
2026-09-01 20:09:05,935 INFO: Removing gradle-wrapper.jar at SDK/gradle/wrapper/gradle-wrapper.jar
2026-09-01 20:09:05,940 INFO: Creating source tarball…
2026-09-01 20:09:06,353 INFO: Building Gradle project…
2026-09-01 20:14:39,327 INFO: Running ‘postbuild’ commands in build/com.freetime.geoweather/app
2026-09-01 20:14:39,332 INFO: Set up NDK r28 (28.0.13004108)
2026-09-01 20:14:39,556 INFO: Successfully built com.freetime.geoweather:65 from 90ee6cdb7ce31bff67e49ff7814cb9336c468262
2026-09-01 20:14:39,579 INFO: …retrieving https://github.com/FreetimeMaker/GeoWeather/releases/download/v2.3.0/GeoWeather-v2.3.0.apk
2026-09-01 20:15:51,541 INFO: …NOT verified - /tmp/tmpfc38o1oj/sigcp_com.freetime.geoweather_65.apk
2026-09-01 20:15:56,254 ERROR: Could not build app com.freetime.geoweather: compared built binary to supplied reference binary but failed
==== detail begin ====
signature copying failed: APK Signing Block offset < central directory offset
Comparing reference APK to unsigned APK…
Unexpected diff output:
Only in /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/META-INF: ALLE.RSA
Only in /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/META-INF: ALLE.SF
Only in /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/META-INF: MANIFEST.MF
Binary files /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/lib/arm64-v8a/libsqliteJni.so and /tmp/tmpfc38o1oj/unsigned_com.freetime.geoweather_65/content/lib/arm64-v8a/libsqliteJni.so differ
Binary files /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/lib/armeabi-v7a/libsqliteJni.so and /tmp/tmpfc38o1oj/unsigned_com.freetime.geoweather_65/content/lib/armeabi-v7a/libsqliteJni.so differ
Binary files /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/lib/x86/libsqliteJni.so and /tmp/tmpfc38o1oj/unsigned_com.freetime.geoweather_65/content/lib/x86/libsqliteJni.so differ
Binary files /tmp/tmpfc38o1oj/unsigned_binaries_com.freetime.geoweather_65.binary/content/lib/x86_64/libsqliteJni.so and /tmp/tmpfc38o1oj/unsigned_com.freetime.geoweather_65/content/lib/x86_64/libsqliteJni.so differ
==== detail end ====
2026-09-01 20:15:56,258 INFO: Build for app com.freetime.geoweather:63 failed
2026-09-01 20:15:56,259 INFO: Build for app com.freetime.geoweather:64 failed
2026-09-01 20:15:56,259 INFO: Build for app com.freetime.geoweather:65 failed
2026-09-01 20:15:56,259 INFO: Finished
2026-09-01 20:15:56,259 INFO: 3 builds failed
jamie@JamiesAcer:~/repos/fdroid$

Each version encounters the same error while it compares the upstream APK with the one produced from source. As you can see, the libsqliteJni.so library differs when comparing both APK.

do run build --verbose and attach the whole log file (use a pastebin) and link to both the output APK and the fdroid APK

Pastebin: https://pastebin.com/5asepikH

APK’s: Download F-Droid com.freetime.geoweather APK's | LimeWire

Known Flutter issue, btw. See: Build IDs:

- flutter pub get
- sed -i -e 's/-Wl,/-Wl,--build-id=none,/' ${PUB_CACHE}/hosted/*/jni-*/src/CMakeLists.txt

You need to insert that second line after flutter pub get. For both builds, the one made with fdroidserver, and the one you compare against.

As for your pastebin:

[CXX1104] NDK from ndk.dir at /home/jamie/android-sdk/ndk/28.0.13004108 had version [28.0.13004108] which disagrees with android.ndkVersion [28.2.13676358]

Make sure to match the NDK :wink: Otherwise, the fdroidserver build will not have the symbols stripped from the native libs, while your other build does.

flutter pub get --enforce-lockfile please :wink: