diff --git a/extra/python/PKGBUILD b/extra/python/PKGBUILD
index 240e92552..e164a9fea 100644
--- a/extra/python/PKGBUILD
+++ b/extra/python/PKGBUILD
@@ -10,8 +10,8 @@
 #  - don't configure with --enable-optimizations - PGO kills builds
 
 pkgname=python
-pkgver=3.7.4
-pkgrel=2
+pkgver=3.8.0
+pkgrel=1
 _pybasever=${pkgver%.*}
 pkgdesc="Next generation of the python high-level scripting language"
 arch=('x86_64')
@@ -28,20 +28,16 @@ optdepends=('python-setuptools'
 provides=('python3')
 replaces=('python3')
 source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc}
-        dont-make-libpython-readonly.patch
         0001-compileall-Fix-ddir-when-recursing.patch)
-sha512sums=('71f64668c259f3ed07bd4aa239dbba6cc1b6b0a84d50bbff160664845d7986f757e4d65fca327e62a2d12ba593742ca83a22f7cb6093aff8715ec916c2ba9416'
+sha512sums=('5f9bfcb3acdf592770a9d5abd2c32c68c55a49b92f958ded069e3ef31cf2d415e67112b4f6738fab237dc29e5c622298719946d2e9471e7e78e3a6bdf2fac1d1'
             'SKIP'
-            '2ef96708d5b13ae2a3d2cc62c87b4780e60ecfce914e190564492def3a11d5e56977659f41c7f9d12266e58050c766bce4e2b5d50b708eb792794fa8357920c4'
             'ebd04c3b6d41321b1f0d439d356e0ce463760db55dc64109854c70d017cf56608aa19de9fc4a21bf840795ff202b4703444f9af8074b661780798c17e03089ff')
-validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D')  # Ned Deily (Python release signing key) <nad@python.org>
+validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D'  # Ned Deily (Python release signing key) <nad@python.org>
+              'E3FF2839C048B25C084DEBE9B26995E310250568') # Ɓukasz Langa (GPG langa.pl) <lukasz@langa.pl>
 
 prepare() {
   cd Python-${pkgver}
 
-  # FS#45809
-  patch -p1 -i ../dont-make-libpython-readonly.patch
-
   # FS#59997
   patch -p1 -i ../0001-compileall-Fix-ddir-when-recursing.patch
 
diff --git a/extra/python/dont-make-libpython-readonly.patch b/extra/python/dont-make-libpython-readonly.patch
deleted file mode 100644
index 92308bfe9..000000000
--- a/extra/python/dont-make-libpython-readonly.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index ce2c0aa..7d6dcf7 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -60,7 +60,7 @@ INSTALL_DATA=	@INSTALL_DATA@
- # Shared libraries must be installed with executable mode on some systems;
- # rather than figuring out exactly which, we always give them executable mode.
- # Also, making them read-only seems to be a good idea...
--INSTALL_SHARED= ${INSTALL} -m 555
-+INSTALL_SHARED= ${INSTALL} -m 755
- 
- MKDIR_P=	@MKDIR_P@
- 
diff --git a/extra/python/genrebuild b/extra/python/genrebuild
new file mode 100755
index 000000000..5f447b0bf
--- /dev/null
+++ b/extra/python/genrebuild
@@ -0,0 +1,7 @@
+#!/bin/bash
+(
+_pyver=$(expac %v python | grep -oP '^[0-9]+\.[0-9]+')
+pacman -Fq /usr/lib/python${_pyver}/ | grep -v archlinuxcn | cut -d / -f 2
+sogrep all libpython${_pyver}m.so
+printf "%s\n" boost vim
+) | sort -u