diff --git a/extra/python2/PKGBUILD b/extra/python2/PKGBUILD
index 2fca6bb94..9bdc40d67 100644
--- a/extra/python2/PKGBUILD
+++ b/extra/python2/PKGBUILD
@@ -8,7 +8,7 @@
 
 pkgname=python2
 pkgver=2.7.17
-pkgrel=1
+pkgrel=2
 _pybasever=2.7
 pkgdesc="A high-level scripting language"
 arch=('x86_64')
@@ -21,14 +21,20 @@ optdepends=('tk: for IDLE'
             'python2-setuptools'
             'python2-pip')
 conflicts=('python<3')
-source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"{,.asc})
+source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"{,.asc}
+        mtime-workaround.patch)
 sha512sums=('2dc19a0b0d818c71429dae94783e58b2aac0fa31f5faa1e840cac06245a59932ecc4658d913515736601bcf70a78c9ec60367aed75f4567d1e41ff3bb104da9a'
-            'SKIP')
+            'SKIP'
+            '4e761cfd57791e8b72ecdf84c2e03875bf074311130eea5b8e97409fa304fa3468dbd359a511c4e9978e686e662c58054b4174d3e73f845fa9ded2e83a3a8076')
 validpgpkeys=('C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF')  # Benjamin Peterson
 
 prepare() {
   cd Python-${pkgver}
 
+  # makepkg will touch all files to $SOURCE_DATE_EPOCH which will break pyc file's mtime check.
+  # workaround this by touching them to $SOURCE_DATE_EPOCH before running compileall.
+  patch -p0 -i ../mtime-workaround.patch
+
   # Temporary workaround for FS#22322
   # See http://bugs.python.org/issue10835 for upstream report
   sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
@@ -79,10 +85,11 @@ check() {
   # Since 2.7.14 with latest xvfb
   # test_idle, test_tk, test_ttk_guionly: segfaults
   # Since 2.7.15: test_ctypes
+  # test_ftplib test_imaplib test_urllib2_localnet: krb5 errors
 
   cd Python-${pkgver}
   LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
-    xvfb-run "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_idle test_tk test_ttk_guionly test_ctypes test_ssl
+    xvfb-run "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_idle test_tk test_ttk_guionly test_ctypes test_ssl test_ftplib test_imaplib test_urllib2_localnet
 }
 
 package() {
diff --git a/extra/python2/mtime-workaround.patch b/extra/python2/mtime-workaround.patch
new file mode 100644
index 000000000..4d3aaac4e
--- /dev/null
+++ b/extra/python2/mtime-workaround.patch
@@ -0,0 +1,10 @@
+--- Makefile.pre.in.orig	2020-03-21 08:40:27.031543502 +0800
++++ Makefile.pre.in	2020-03-21 08:47:27.277107917 +0800
+@@ -1137,6 +1137,7 @@
+ 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+ 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
+ 	fi
++	find $(DESTDIR)$(LIBDEST) -exec touch -h -d @$(SOURCE_DATE_EPOCH) {} +
+ 	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+ 		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ 		-d $(LIBDEST) -f \