From 8099dc6e3aeae5bfd8a4115deed88022500362e1 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Mon, 27 Jan 2025 10:59:19 +0000 Subject: Provide an Android version code derived from the Emacs version 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) --- java/incrementing-version-code | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 java/incrementing-version-code (limited to 'java/incrementing-version-code') diff --git a/java/incrementing-version-code b/java/incrementing-version-code new file mode 100644 index 00000000000..fed5b627275 --- /dev/null +++ b/java/incrementing-version-code @@ -0,0 +1,12 @@ +; 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 -- cgit v1.3 From 121371a706491fde8c06d95b13c16703d53f6fa3 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Wed, 5 Mar 2025 14:59:19 +0800 Subject: Move java/incrementing-version-code to AndroidManifest.xml.in * admin/admin.el (admin-android-version-code-regexp): New variable. (set-version): Modify AndroidManifest.xml.in instead. * java/AndroidManifest.xml.in (Version-code): Define version code. * java/incrementing-version-code: Delete file. --- admin/admin.el | 10 ++++++---- java/AndroidManifest.xml.in | 15 +++++++++++++++ java/incrementing-version-code | 12 ------------ 3 files changed, 21 insertions(+), 16 deletions(-) (limited to 'java/incrementing-version-code') diff --git a/admin/admin.el b/admin/admin.el index 12891bc8c48..0f02ac8d9b1 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -98,6 +98,10 @@ Optional argument DATE is the release date, default today." (defvar admin-git-command (executable-find "git") "The `git' program to use.") +(defvar admin-android-version-code-regexp + "\\bAuto-incrementing version code\\(?:.\\|\n\\)*\\([[:digit:]]\\{9\\}\\)$" + "Regexp with which to detect the version code in AndroidManifest.xml.") + (defun set-version (root version) "Set Emacs version to VERSION in relevant files under ROOT. Root must be the root of an Emacs source tree." @@ -122,13 +126,11 @@ Root must be the root of an Emacs source tree." (rx (and "AC_INIT" (1+ (not (in ?,))) ?, (0+ space) ?\[ (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "java/incrementing-version-code" + (set-version-in-file root "java/AndroidManifest.xml.in" (apply #'format "%02d%02d%02d000" (mapcar #'string-to-number (split-string version "\\."))) - (rx (and line-start - (submatch (1+ (in digit))) - line-end))) + admin-android-version-code-regexp) (set-version-in-file root "nt/README.W32" version (rx (and "version" (1+ space) (submatch (1+ (in "0-9.")))))) diff --git a/java/AndroidManifest.xml.in b/java/AndroidManifest.xml.in index 6243c5e13ba..92b63925ef4 100644 --- a/java/AndroidManifest.xml.in +++ b/java/AndroidManifest.xml.in @@ -338,3 +338,18 @@ along with GNU Emacs. If not, see . --> android:label="GNU Emacs service"/> + + diff --git a/java/incrementing-version-code b/java/incrementing-version-code index fed5b627275..e69de29bb2d 100644 --- a/java/incrementing-version-code +++ b/java/incrementing-version-code @@ -1,12 +0,0 @@ -; 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 -- cgit v1.3