Revert "Allow multiple releases of sqlite"

Revert submission 3004403

Reason for revert: build breakage on mainline modules
Reverted changes: /q/submissionid:3004403

Change-Id: I5eb768aa7c03f7159c400dc28faf8ea006e3e56f
diff --git a/README-upgrade.md b/README-upgrade.md
index 951bb37..fc93cf5 100644
--- a/README-upgrade.md
+++ b/README-upgrade.md
@@ -13,20 +13,19 @@
 
 The upgrade steps are:
 
-*   Select a version for the upgrade.  Note the year it was released by sqlite.org.
+*   Select a version for the upgrade.
 *   Find the autoconf amalgamation tarball. For release 3.42.0, the URL is
     [sqlite-autoconf-3420000.tar.gz](https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz).
 *   Change to the directory `external/sqlite` in the workspace.
 *   Run the script `UPDATE-SOURCE.bash`. This script is executable. The
-    arguments are the sqlite release year and the version. Invoke the script without
+    arguments are the tarball URL and the version. Invoke the script without
     arguments for an example.
 
 `UPDATE-SOURCE.bash` may fail if the Android patch cannot be applied cleanly. If
 this happens, correct the patch failures by hand and rebuild the Android patch
 file. Use the script `REBUILD-ANDROID-PATCH.bash` to rebuild the patch file.
-This script takes the same arguments as `UPDATE-SOURCE.bash`.  Then rerun
-`UPDATE-SOURCE.bash`. It is important that `UPDATE-SOURCE.bash` run without
-errors.
+Then rerun `UPDATE-SOURCE.bash`. It is important that `UPDATE-SOURCE.bash` run
+without errors.
 
 ## LICENSE
 
diff --git a/REBUILD-ANDROID-PATCH.bash b/REBUILD-ANDROID-PATCH.bash
index 53d0990..734e296 100755
--- a/REBUILD-ANDROID-PATCH.bash
+++ b/REBUILD-ANDROID-PATCH.bash
@@ -16,7 +16,7 @@
 
 # This script updates SQLite source files with a SQLite tarball.
 #
-# Usage: REBUILD-ANDROID_PATCH.bash <release>
+# Usage: REBUILD-ANDROID_PATCH.bash
 #
 # This script must be executed in $ANDROID_BUILD_TOP/external/sqlite/
 #
@@ -24,7 +24,9 @@
 set -e
 
 script_name="$(basename "$0")"
-script_dir=$(dirname $(realpath ${BASH_SOURCE[0]}))
+
+source_tgz="$1"
+source_ext_dir="$1.extracted"
 
 die() {
     echo "$script_name: $*"
@@ -36,38 +38,20 @@
     "$@"
 }
 
-# This function converts a release string like "3.42.0" to the canonical 7-digit
-# format used by sqlite.org for downloads: "3420000".  A hypothetical release
-# number of 3.45.6 is converted to "3450600".  A hypothetical release number of
-# 3.45.17 is converted to "3451700".  The last two digits are assumed to be
-# "00" for now, as there are no known counter-examples.
-function normalize_release {
-  local version=$1
-  local -a fields
-  fields=($(echo "$version" | sed 's/\./ /g'))
-  if [[ ${#fields[*]} -lt 2 || ${#fields[*]} -gt 3 ]]; then
-    echo "cannot parse version: $version"
-    return 1
-  elif [[ ${#fields[*]} -eq 2 ]]; then
-    fields+=(0)
-  fi
-  printf "%d%02d%02d00" ${fields[*]}
-  return 0
-}
-
-if [[ $# -lt 1 ]]; then
-  die "missing required arguments"
-elif [[ $# -gt 1 ]]; then
-  die "extra arguments on command line"
+# Make sure the source tgz file exists.
+pwd="$(pwd)"
+if [[ ! "$pwd" =~ .*/external/sqlite/? ]] ; then
+    die 'Execute this script in $ANDROID_BUILD_TOP/external/sqlite/'
 fi
-sqlite_release=$(normalize_release "$1") || die "invalid release"
-sqlite_base="sqlite-autoconf-${sqlite_release}"
 
-export patch_dir=${script_dir}/dist
+# No parameters are permitted
+if [[ ! $# -eq 0 ]]; then
+    die "Unexpected arguments on the command line"
+fi
+
 echo
 echo "# Regenerating Android.patch ..."
 (
-    cd dist/$sqlite_base || die "release directory not found"
+    cd dist
     echo_and_exec bash -c '(for x in orig/*; do diff -u -d $x ${x#orig/}; done) > Android.patch'
-    echo_and_exec cp Android.patch ${patch_dir}/
-) 
+)
diff --git a/UPDATE-SOURCE.bash b/UPDATE-SOURCE.bash
index 24e3a1a..fdd9093 100755
--- a/UPDATE-SOURCE.bash
+++ b/UPDATE-SOURCE.bash
@@ -14,32 +14,23 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# This script updates SQLite source files with a SQLite tarball.  The tarball is
-# downloaded from the sqlite website.
+# This script updates SQLite source files with a SQLite tarball.
 #
-# Usage: UPDATE-SOURCE.bash [-nF] <year> <sqlite-release>
+# Usage: UPDATE-SOURCE.bash SQLITE-SOURCE.tgz
 #
-# This script must be executed in $ANDROID_BUILD_TOP/external/sqlite/.  However,
-# for testing it can run anywhere: use the -F switch.
+# This script must be executed in $ANDROID_BUILD_TOP/external/sqlite/
 #
 
 set -e
 
 script_name="$(basename "$0")"
-script_dir=$(dirname $(realpath ${BASH_SOURCE[0]}))
 
-usage() {
-  if [[ $# -gt 0 ]]; then echo "$*" >&2; fi
-  echo "Usage: ${script_name} -nF <year> <version>"
-  echo "  year    the 4-digit year the sqlite version was released"
-  echo "  version the sqlite version as <major>.<minor>[.<patch>]"
-  echo "          the patch level defaults to 0"
-  echo "  -n      dry-run: evaluate arguments but d not change anything"
-  echo "  -F      force execution even if not in external/sqlite"
-  echo 
+if [ $# -eq 0 ]; then
+  echo "Usage: ${script_name} [src_tarball_url] [sqlite_version]"
   echo "Example:"
-  echo "${script_name} 2023 3.42"
-}
+  echo "${script_name} https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz 3.42.0"
+  exit 1
+fi
 
 die() {
     echo "$script_name: $*"
@@ -51,89 +42,20 @@
     "$@"
 }
 
-validate_year() {
-  local year=$1
-  if [[ "$year" =~ ^2[0-9][0-9][0-9]$ ]]; then
-    return 0;
-  else
-    return 1;
-  fi
-}
-
-# This function converts a release string like "3.42.0" to the canonical 7-digit
-# format used by sqlite.org for downloads: "3420000".  A hypothetical release
-# number of 3.45.6 is converted to "3450600".  A hypothetical release number of
-# 3.45.17 is converted to "3451700".  The last two digits are assumed to be
-# "00" for now, as there are no known counter-examples.
-function normalize_release {
-  local version=$1
-  local -a fields
-  fields=($(echo "$version" | sed 's/\./ /g'))
-  if [[ ${#fields[*]} -lt 2 || ${#fields[*]} -gt 3 ]]; then
-    echo "cannot parse version: $version"
-    return 1
-  elif [[ ${#fields[*]} -eq 2 ]]; then
-    fields+=(0)
-  fi
-  printf "%d%02d%02d00" ${fields[*]}
-  return 0
-}
-
-function prettify_release {
-  local version=$1
-  local patch=$((version % 100))
-  version=$((version / 100))
-  local minor=$((version % 100))
-  version=$((version / 100))
-  local major=$((version % 100))
-  version=$((version / 100))
-  # version now contains the generation number.
-  printf "%d.%d.%d" $version $major $minor
-}
-
-dry_run=
-force=
-while getopts "hnF" option; do
-  case $option in
-    h) usage; exit 0;;
-    n) dry_run=y;;
-    F) force=y;;
-    *) usage "unknown switch"; exit 1;;
-  esac
-done
-shift $((OPTIND- 1))
-
-if [[ $# -lt 2 ]]; then
-  usage; die "missing required arguments"
-elif [[ $# -gt 2 ]]; then
-  die "extra arguments on command line"
-fi
-year=$1
-validate_year "$year" || die "invalid year"
-sqlite_release=$(normalize_release "$2") || die "invalid release"
-
-sqlite_base="sqlite-autoconf-${sqlite_release}"
-sqlite_file="${sqlite_base}.tar.gz"
-src_tarball_url="https://www.sqlite.org/$year/${sqlite_file}"
-
-if [[ -n $dry_run ]]; then
-  echo "fetching $src_tarball_url"
-  echo "installing in dist/$sqlite_base"
-  exit 0
-fi
-
 pwd="$(pwd)"
-if [[ -z $force && ! "$pwd" =~ .*/external/sqlite/? ]] ; then
+if [[ ! "$pwd" =~ .*/external/sqlite/? ]] ; then
     die 'Execute this script in $ANDROID_BUILD_TOP/external/sqlite/'
 fi
 
-source_tgz=$(mktemp /tmp/sqlite-${sqlite_release}.zip.XXXXXX)
-source_ext_dir="${source_tgz}.extracted"
-trap "rm -r ${source_tgz} ${source_ext_dir}" EXIT
+src_tarball_url="$1"
+sqlite_version="$2"
+
+source_tgz=$(mktemp /tmp/sqlite-${sqlite_version}.zip.XXXXXX)
 wget ${src_tarball_url} -O ${source_tgz}
 
 echo
 echo "# Extracting the source tgz..."
+source_ext_dir="${source_tgz}.extracted"
 echo_and_exec rm -fr "$source_ext_dir"
 echo_and_exec mkdir -p "$source_ext_dir"
 echo_and_exec tar xvf "$source_tgz" -C "$source_ext_dir" --strip-components=1
@@ -146,23 +68,20 @@
     echo_and_exec make -j 4 sqlite3.c
 )
 
-export dist_dir="dist/${sqlite_base}"
+dist_dir="dist-${sqlite_version}"
 echo
 echo "# Copying the source files ..."
-echo_and_exec rm -rf ${dist_dir}
 echo_and_exec mkdir -p "${dist_dir}"
 echo_and_exec mkdir -p "${dist_dir}/orig"
 for to in ${dist_dir}/orig/ ${dist_dir}/ ; do
     echo_and_exec cp "$source_ext_dir/"{shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h} "$to"
 done
 
-export patch_dir=${script_dir}/dist
 echo
 echo "# Applying Android.patch ..."
 (
     cd ${dist_dir}
-    echo "PATCHING IN $dist_dir" >&2
-    echo_and_exec patch -i ${patch_dir}/Android.patch
+    echo_and_exec patch -i ../Android.patch
 )
 
 echo
@@ -170,14 +89,13 @@
 (
     cd ${dist_dir}
     echo_and_exec bash -c '(for x in orig/*; do diff -u -d $x ${x#orig/}; done) > Android.patch'
-    echo_and_exec cp Android.patch ${patch_dir}/
 )
 
 echo
 echo "# Generating metadata ..."
 (
     export SQLITE_URL=${src_tarball_url}
-    export SQLITE_VERSION=$(prettify_release ${sqlite_release})
+    export SQLITE_VERSION=${sqlite_version}
     export YEAR=$(date +%Y)
     export MONTH=$(date +%M)
     export DAY=$(date +%D)