diff --git a/heroku-24/installed-packages-amd64.txt b/heroku-24/installed-packages-amd64.txt
index 32bd02b..b2ac481 100644
--- a/heroku-24/installed-packages-amd64.txt
+++ b/heroku-24/installed-packages-amd64.txt
@@ -343,6 +343,7 @@ socat
 sysvinit-utils
 tar
 tzdata
+tzdata-legacy
 ubuntu-keyring
 ucf
 unzip
diff --git a/heroku-24/installed-packages-arm64.txt b/heroku-24/installed-packages-arm64.txt
index 113489d..72b7b96 100644
--- a/heroku-24/installed-packages-arm64.txt
+++ b/heroku-24/installed-packages-arm64.txt
@@ -343,6 +343,7 @@ socat
 sysvinit-utils
 tar
 tzdata
+tzdata-legacy
 ubuntu-keyring
 ucf
 unzip
diff --git a/heroku-24/setup.sh b/heroku-24/setup.sh
index 6156a5e..31cd015 100755
--- a/heroku-24/setup.sh
+++ b/heroku-24/setup.sh
@@ -11,9 +11,9 @@ export DEBIAN_FRONTEND=noninteractive
 # `Components: main universe restricted multiverse`
 # See: https://manpages.ubuntu.com/manpages/noble/en/man5/sources.list.5.html
 for repository_to_disable in multiverse restricted; do
-  # sed doesn't support lookbehind so we instead have to match against the line prefix too
-  # and then preserve it using `\1` in the replacement.
-  sed --in-place --regexp-extended "s/(Components:.*) ${repository_to_disable}/\1/g" /etc/apt/sources.list.d/ubuntu.sources
+    # sed doesn't support lookbehind so we instead have to match against the line prefix too
+    # and then preserve it using `\1` in the replacement.
+    sed --in-place --regexp-extended "s/(Components:.*) ${repository_to_disable}/\1/g" /etc/apt/sources.list.d/ubuntu.sources
 done
 
 apt-get update --error-on=any
@@ -38,88 +38,89 @@ apt-get update --error-on=any
 apt-get upgrade -y --no-install-recommends
 
 packages=(
-  bind9-dnsutils # For `dig`, `host` and `nslookup`.
-  binutils # Python's `ctypes.util.find_library` requires `ld` to find libraries specified via `LD_LIBRARY_PATH`.
-  bzip2
-  curl
-  file
-  fonts-dejavu-core
-  fonts-dejavu-mono
-  fonts-urw-base35 # ImageMagick's default type.xml config points to these, includes e.g. Courier or Helvetica
-  gettext-base # For `envsubst`.
-  ghostscript # Used by ImageMagick's PDF functionality
-  gir1.2-harfbuzz-0.0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  gnupg
-  imagemagick
-  inetutils-telnet
-  iproute2 # For `ip`, used by Heroku Exec.
-  iputils-tracepath
-  jq # Used by Heroku Exec at run time, and buildpacks at build time.
-  less
-  libargon2-1 # Used by the PHP runtime.
-  libass9 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libc-client2007e # Used by the PHP IMAP extension.
-  libcares2 # Used by PgBouncer in heroku-buildpack-pgbouncer.
-  libdav1d7 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libev4
-  libevent-2.1-7 # Used by PgBouncer in heroku-buildpack-pgbouncer.
-  libevent-core-2.1-7 # Used by the PHP Event extension.
-  libevent-extra-2.1-7 # Used by the PHP Event extension.
-  libevent-openssl-2.1-7 # Used by the PHP Event extension.
-  libevent-pthreads-2.1-7
-  libgd3
-  libgdk-pixbuf-2.0-0
-  libgnutls-openssl27
-  libgnutls30 # Used by the Ruby and PHP runtimes.
-  libharfbuzz-icu0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  liblzf1 # Used by the PHP Redis extension.
-  libmagickcore-6.q16-7-extra # Used by the PHP Imagick extension (using the `-extra` package for SVG support).
-  libmemcached11 # Used by the PHP Memcached extension.
-  libmemcachedutil2t64 # Same -dev headers as libmemcached11
-  libmp3lame0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libmysqlclient21
-  libncurses6 # Used by the Ruby runtime.
-  libonig5 # Used by the PHP runtime.
-  libopencore-amrnb0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libopencore-amrwb0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libopus0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  librabbitmq4 # Used by the PHP AMQP extension.
-  librsvg2-common
-  libsasl2-modules # Used by the Ruby and PHP runtimes.
-  libsodium23 # Used by the PHP runtime.
-  libspeex1 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libsvtav1enc1d1 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libtheora0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libuv1
-  libvips42 # Used by the ruby-vips gem / Rails Active Storage Previews.
-  libvorbisenc2 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libvorbisfile3 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libvpx9 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libwebpdecoder3 # Same -dev headers as the other libwebp* packages that get pulled in already
-  libwmf-0.2-7 # Because libwmf-dev is in the build image
-  libx264-164 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libx265-199 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
-  libxslt1.1 # Used by the PHP runtime.
-  libyaml-0-2 # Used by the Ruby runtime.
-  libzip4 # Used by the PHP runtime.
-  locales
-  lsb-release
-  nano # More usable than ed but still much smaller than vim.
-  netcat-openbsd
-  openssh-client # Used by Heroku Exec.
-  openssh-server # Used by Heroku Exec.
-  patch
-  poppler-utils # For Rails Active Storage Previews PDF support.
-  postgresql-client-16 # We need `psql` (and not just libpq) for Shield DB workflows (where connections are only possible from the dyno).
-  rsync
-  socat
-  tar
-  tzdata
-  unzip
-  wget
-  xz-utils
-  zip
-  zstd
+    bind9-dnsutils # For `dig`, `host` and `nslookup`.
+    binutils       # Python's `ctypes.util.find_library` requires `ld` to find libraries specified via `LD_LIBRARY_PATH`.
+    bzip2
+    curl
+    file
+    fonts-dejavu-core
+    fonts-dejavu-mono
+    fonts-urw-base35    # ImageMagick's default type.xml config points to these, includes e.g. Courier or Helvetica
+    gettext-base        # For `envsubst`.
+    ghostscript         # Used by ImageMagick's PDF functionality
+    gir1.2-harfbuzz-0.0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    gnupg
+    imagemagick
+    inetutils-telnet
+    iproute2 # For `ip`, used by Heroku Exec.
+    iputils-tracepath
+    jq # Used by Heroku Exec at run time, and buildpacks at build time.
+    less
+    libargon2-1      # Used by the PHP runtime.
+    libass9          # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libc-client2007e # Used by the PHP IMAP extension.
+    libcares2        # Used by PgBouncer in heroku-buildpack-pgbouncer.
+    libdav1d7        # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libev4
+    libevent-2.1-7         # Used by PgBouncer in heroku-buildpack-pgbouncer.
+    libevent-core-2.1-7    # Used by the PHP Event extension.
+    libevent-extra-2.1-7   # Used by the PHP Event extension.
+    libevent-openssl-2.1-7 # Used by the PHP Event extension.
+    libevent-pthreads-2.1-7
+    libgd3
+    libgdk-pixbuf-2.0-0
+    libgnutls-openssl27
+    libgnutls30                 # Used by the Ruby and PHP runtimes.
+    libharfbuzz-icu0            # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    liblzf1                     # Used by the PHP Redis extension.
+    libmagickcore-6.q16-7-extra # Used by the PHP Imagick extension (using the `-extra` package for SVG support).
+    libmemcached11              # Used by the PHP Memcached extension.
+    libmemcachedutil2t64        # Same -dev headers as libmemcached11
+    libmp3lame0                 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libmysqlclient21
+    libncurses6        # Used by the Ruby runtime.
+    libonig5           # Used by the PHP runtime.
+    libopencore-amrnb0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libopencore-amrwb0 # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libopus0           # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    librabbitmq4       # Used by the PHP AMQP extension.
+    librsvg2-common
+    libsasl2-modules # Used by the Ruby and PHP runtimes.
+    libsodium23      # Used by the PHP runtime.
+    libspeex1        # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libsvtav1enc1d1  # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libtheora0       # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libuv1
+    libvips42       # Used by the ruby-vips gem / Rails Active Storage Previews.
+    libvorbisenc2   # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libvorbisfile3  # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libvpx9         # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libwebpdecoder3 # Same -dev headers as the other libwebp* packages that get pulled in already
+    libwmf-0.2-7    # Because libwmf-dev is in the build image
+    libx264-164     # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libx265-199     # Used by FFmpeg in heroku-buildpack-activestorage-preview.
+    libxslt1.1      # Used by the PHP runtime.
+    libyaml-0-2     # Used by the Ruby runtime.
+    libzip4         # Used by the PHP runtime.
+    locales
+    lsb-release
+    nano # More usable than ed but still much smaller than vim.
+    netcat-openbsd
+    openssh-client # Used by Heroku Exec.
+    openssh-server # Used by Heroku Exec.
+    patch
+    poppler-utils        # For Rails Active Storage Previews PDF support.
+    postgresql-client-16 # We need `psql` (and not just libpq) for Shield DB workflows (where connections are only possible from the dyno).
+    rsync
+    socat
+    tar
+    tzdata
+    tzdata-legacy # Provides older/non-standard timezones like US/Central
+    unzip
+    wget
+    xz-utils
+    zip
+    zstd
 )
 
 apt-get install -y --no-install-recommends "${packages[@]}"
@@ -134,7 +135,7 @@ mkdir -p /usr/local/share/ca-certificates/rds-ca-certs
 awk '
   split_after == 1 {n++;split_after=0}
   /-----END CERTIFICATE-----/ {split_after=1}
-  {print > "/usr/local/share/ca-certificates/rds-ca-certs/rds-ca" n ".crt"}' < /build/rds-global-bundle.pem
+  {print > "/usr/local/share/ca-certificates/rds-ca-certs/rds-ca" n ".crt"}' </build/rds-global-bundle.pem
 update-ca-certificates
 
 # Install ca-certificates-java so that the JVM buildpacks can configure Java apps to use the Java certs
@@ -149,7 +150,6 @@ apt-get remove -y --purge --auto-remove default-jre-headless
 # https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1771363
 test "$(file --brief /etc/ssl/certs/java/cacerts)" = "Java KeyStore"
 
-
 # Ubuntu 24.04 ships with a default user and group named 'ubuntu' (with user+group ID of 1000)
 # that we have to remove before creating our own (`userdel` will remove the group too).
 userdel ubuntu --remove