commit 431176c9520ea6470af84bfdea1021665f072f88 equwal <truex@equwal.com> 2026-09-26 19:13:04 -0700 Compile the speech library without the compiler version line, and set the version to 0.9.4 The F-Droid build of 0.9.3 still differed in libsubread_whisper.so, and only in the .comment section: the clang of the Windows NDK adds its own version line there, and the clang of the Linux NDK does not. With -fno-ident, the library built on Windows is byte for byte the same as the library that the F-Droid CI built for 0.9.3.
app/build.gradle.kts | 4 ++-- app/src/main/cpp/CMakeLists.txt | 5 ++++- fastlane/metadata/android/en-US/changelogs/14.txt | 1 + fdroid/space.subread.app.yml | 10 +++++----- 4 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 77fdcc5..4ad81b9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -28,8 +28,8 @@ android { minSdk = 26 targetSdk = 36 // Plain numbers, in this file: F-Droid reads them from here to find a new release. - versionCode = 13 - versionName = "0.9.3" + versionCode = 14 + versionName = "0.9.4" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // A link to the Ko-fi page. Google Play is not given it (-PplayStore=true): its diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index 9e9d1c1..0cea6dd 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -15,13 +15,16 @@ set(WHISPER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../third_party/whisper.cpp) # Reproducible build: F-Droid builds this library again, on Linux and at another # path, and compares it with the signed APK. The maps remove the paths of the # build machine from the __FILE__ strings of ggml. -ffile-reproducible writes "/" -# in them on Windows too. An empty GIT_EXE stops ggml from recording the git state +# in them on Windows too. -fno-ident keeps the version line of the compiler out of +# the .comment section: the clang of the Windows NDK writes another line than the +# clang of the Linux NDK. An empty GIT_EXE stops ggml from recording the git state # of the checkout, which the F-Droid scanner changes. get_filename_component(SUBREAD_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../.." ABSOLUTE) get_filename_component(SUBREAD_TOOLCHAIN_BIN "${CMAKE_C_COMPILER}" DIRECTORY) get_filename_component(SUBREAD_TOOLCHAIN_ROOT "${SUBREAD_TOOLCHAIN_BIN}" DIRECTORY) add_compile_options( -ffile-reproducible + -fno-ident "-ffile-prefix-map=${SUBREAD_ROOT}=." "-ffile-prefix-map=${SUBREAD_TOOLCHAIN_ROOT}=toolchain") set(GIT_EXE "" CACHE FILEPATH "Not used: the build records no git state" FORCE) diff --git a/fastlane/metadata/android/en-US/changelogs/14.txt b/fastlane/metadata/android/en-US/changelogs/14.txt new file mode 100644 index 0000000..6d00846 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/14.txt @@ -0,0 +1 @@ +The speech library no longer holds the version line of the compiler, so the F-Droid build is the same as the signed APK on GitHub. Nothing else changes. diff --git a/fdroid/space.subread.app.yml b/fdroid/space.subread.app.yml index ccc699b..f51da04 100644 --- a/fdroid/space.subread.app.yml +++ b/fdroid/space.subread.app.yml @@ -16,9 +16,9 @@ Repo: https://github.com/equwal/subread-android.git Binaries: https://github.com/equwal/subread-android/releases/download/v%v/SubRead-%v.apk Builds: - - versionName: 0.9.3 - versionCode: 13 - commit: v0.9.3 + - versionName: 0.9.4 + versionCode: 14 + commit: v0.9.4 subdir: app submodules: true sudo: @@ -48,5 +48,5 @@ MaintainerNotes: |- AutoUpdateMode: Version UpdateCheckMode: Tags -CurrentVersion: 0.9.3 -CurrentVersionCode: 13 +CurrentVersion: 0.9.4 +CurrentVersionCode: 14