diff --git a/.jenkins b/.jenkins
index 0f40e00..92b9dae 100755
--- a/.jenkins
+++ b/.jenkins
@@ -32,6 +32,9 @@
     export DISABLE_HEADERS_CHECK=yes
 fi
 
+# https://reproducible-builds.org/docs/source-date-epoch/
+export SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)
+
 for file in .jenkins.d/*; do
     [[ -f $file && -x $file ]] || continue
 
diff --git a/.jenkins.d/20-tests.sh b/.jenkins.d/20-tests.sh
index ea1ec19..ab14284 100755
--- a/.jenkins.d/20-tests.sh
+++ b/.jenkins.d/20-tests.sh
@@ -22,9 +22,5 @@
 # Prepare environment
 rm -rf ~/.ndn
 
-if [[ $ID == macos && ${VERSION_ID%%.*} -lt 11 ]]; then
-    security unlock-keychain -p named-data
-fi
-
 # Run unit tests
 ./build/unit-tests
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index f159fde..5f2d0b3 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -18,19 +18,22 @@
     if cxx == 'gcc':
         if ccver < (7, 4, 0):
             errmsg = ('The version of gcc you are using is too old.\n'
-                      'The minimum supported gcc version is 7.4.')
+                      'The minimum supported gcc version is 9.3.')
+        elif ccver < (9, 3, 0):
+            warnmsg = ('Using a version of gcc older than 9.3 is not '
+                       'officially supported and may result in build failures.')
         conf.flags = GccFlags()
     elif cxx == 'clang':
         if Utils.unversioned_sys_platform() == 'darwin':
             if ccver < (10, 0, 0):
                 errmsg = ('The version of Xcode you are using is too old.\n'
-                          'The minimum supported Xcode version is 11.3.')
-            elif ccver < (11, 0, 0):
-                warnmsg = ('Using a version of Xcode older than 11.3 is not '
+                          'The minimum supported Xcode version is 12.4.')
+            elif ccver < (12, 0, 0):
+                warnmsg = ('Using a version of Xcode older than 12.4 is not '
                            'officially supported and may result in build failures.')
-        elif ccver < (6, 0, 0):
+        elif ccver < (7, 0, 0):
             errmsg = ('The version of clang you are using is too old.\n'
-                      'The minimum supported clang version is 6.0.')
+                      'The minimum supported clang version is 7.0.')
         conf.flags = ClangFlags()
     else:
         warnmsg = f'{cxx} compiler is unsupported'
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index d1493dd..32f479c 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -7,18 +7,20 @@
 ndn-cxx is built against a continuous integration system and has been tested on the
 following platforms:
 
-- Ubuntu 18.04 / 20.04 / 22.04
-- Debian 11
+- Ubuntu 20.04 (focal)
+- Ubuntu 22.04 (jammy)
+- Debian 11 (bullseye)
 - CentOS Stream 9
-- macOS 10.15 / 11 / 12 / 13
+- macOS 11 / 12 / 13
 
-ndn-cxx is known to work on the following platforms, although they are not officially
+ndn-cxx should also work on the following platforms, although they are not officially
 supported:
 
+- Any other recent version of Ubuntu not listed above
 - Alpine >= 3.12
-- Fedora >= 29
-- Gentoo Linux
-- Raspberry Pi OS (formerly Raspbian) >= 2019-06-20
+- Fedora >= 32
+- Any version of Raspberry Pi OS based on Debian 11 (bullseye)
+- macOS 10.15
 - FreeBSD >= 12.2
 
 Prerequisites
@@ -27,9 +29,9 @@
 Required
 ~~~~~~~~
 
-- GCC >= 7.4 or clang >= 6.0 (if you are on Linux or FreeBSD)
-- Xcode >= 11.3 or corresponding version of Command Line Tools (if you are on macOS)
-- Python >= 3.6
+- GCC >= 9.3 or clang >= 7.0 (if you are on Linux or FreeBSD)
+- Xcode >= 12.4 or corresponding version of Command Line Tools (if you are on macOS)
+- Python >= 3.8
 - pkg-config
 - Boost >= 1.65.1
 - OpenSSL >= 1.1.1
@@ -60,7 +62,6 @@
       .. code-block:: sh
 
         brew install boost openssl pkg-config
-        brew install python  # only on macOS 10.14 and earlier
 
       .. warning::
 
