The version code is intended to be an integer that increments
for each Android package release
(https://developer.android.com/studio/publish/versioning#versioningsettings).
If we keep this updated under version control, then F-Droid (a
third-party Android package repository), can watch for that, and
use it to automatically build Emacs packages for Android each
time a new Emacs release is tagged
(https://f-droid.org/en/docs/Build_Metadata_Reference/#UpdateCheckData).
* admin/admin.el (set-version): Update version code in
java/incrementing-version-code
* java/incrementing-version-code: New file containing an Android
version code corresponding to the current Emacs version.
(bug#75809)
(cherry picked from commit
8099dc6e3aeae5bfd8a4115deed88022500362e1)
(rx (and "AC_INIT" (1+ (not (in ?,)))
?, (0+ space) ?\[
(submatch (1+ (in "0-9."))))))
+ (set-version-in-file root "java/incrementing-version-code"
+ (apply #'format "%02d%02d%02d000"
+ (mapcar #'string-to-number
+ (split-string version "\\.")))
+ (rx (and line-start
+ (submatch (1+ (in digit)))
+ line-end)))
(set-version-in-file root "nt/README.W32" version
(rx (and "version" (1+ space)
(submatch (1+ (in "0-9."))))))
--- /dev/null
+; This file contains an Android version code
+; (https://developer.android.com/studio/publish/versioning#versioningsettings)
+; corresponding to the current Emacs version.
+;
+; The version code in AndroidManifest.xml.in is hard-coded to a fixed
+; value, to make package downgrades possible. Where an incrementing
+; version code is required (for example, for automated F-Droid package
+; builds (https://f-droid.org/packages/org.gnu.emacs/)), the version
+; code in this file should be referred to and patched in to
+; AndroidManifest.xml.
+
+300093000