diff --git a/main/python3/APKBUILD b/main/python3/APKBUILD
index f25ceba8916dba00feffb01a01a2199b782aa8d3..28e6ed7bc809440ee42cb7c97708a80b7d9f988f 100644
--- a/main/python3/APKBUILD
+++ b/main/python3/APKBUILD
@@ -3,19 +3,41 @@
 
 pkgname=python3
 # the python3-tkinter's pkgver needs to be synchronized with this.
-pkgver=3.10.3
+pkgver=3.10.4
 _bluez_ver=5.64
 _basever="${pkgver%.*}"
-pkgrel=1
+pkgrel=0
 pkgdesc="A high-level scripting language"
 url="https://www.python.org/"
 arch="all"
 license="PSF-2.0"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-tests::noarch
-	pythonispython3"
-makedepends="expat-dev openssl1.1-compat-dev zlib-dev ncurses-dev bzip2-dev xz-dev
-	sqlite-dev libffi-dev tcl-dev linux-headers gdbm-dev>=1.18.1-r0 readline-dev
-	mpdecimal-dev automake autoconf libtool autoconf-archive !gettext-dev"
+subpackages="
+	$pkgname-dbg
+	$pkgname-dev
+	$pkgname-doc
+	$pkgname-tests::noarch
+	pythonispython3
+	"
+makedepends="
+	!gettext-dev
+	autoconf
+	autoconf-archive
+	automake
+	bzip2-dev
+	expat-dev
+	gdbm-dev>=1.18.1-r0
+	libffi-dev
+	libtool
+	linux-headers
+	mpdecimal-dev
+	ncurses-dev
+	openssl-dev
+	readline-dev
+	sqlite-dev
+	tcl-dev
+	xz-dev
+	zlib-dev
+	"
 source="https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz
 	https://www.kernel.org/pub/linux/bluetooth/bluez-$_bluez_ver.tar.xz
 	fix-xattrs-glibc.patch
@@ -149,12 +171,10 @@ EOF
 	# kernel related
 	fail="$fail test_fcntl"					# wants DNOTIFY, we don't have it
 
-	# just a single subtest test_memoryview_struct_module is breaking on pc64le.
-	if [ "$CARCH" = "ppc64le" ]; then
-		fail="$fail test_buffer"			# fail on ppc64le
-	fi
 	case "$CARCH" in
-		mips64)			fail="$fail test_compileall" ;;	# FIXME: crashes on octeon3
+	ppc64le)
+		fail="$fail test_buffer"
+		;;
 	esac
 
 	make quicktest TESTOPTS="-j${JOBS:-$(nproc)} --exclude $fail"
@@ -206,10 +226,10 @@ pythonispython3() {
 }
 
 sha512sums="
-5020407798ebaae6002b8de29475c1064a32f1527a0e4ec6fe7fcf076b4ea3ef0ab4b4a7864a6081cc8dd01dd545123198b11cc8dd1259c670394b7d81f35a86  Python-3.10.3.tar.xz
+6c9aeecddc55c7896b2e8527fca131c7b2b6127d56ce1a001ccedfebf590334e0c0bb7c517ed3cf1da3c1910e002552b56aa7e03eeb672f42ff0bd8150799113  Python-3.10.4.tar.xz
 f11f9974b29c5c6fce3890d7e42425c1cb02e42c1b8f49c5cc4b249234e67b64317d0e5e82721e2fbf1b53269c8569a9c869d59ce42b5e927f6622f0753e53cd  bluez-5.64.tar.xz
 fe123dd871f7a3fa868c499a957b94f1d815a1e1de964aaff1116c579defd4d9d1e9b7eb418cf114b169b97426ed603bf4b1e61b45ec483df06abe988c6a30ee  fix-xattrs-glibc.patch
 ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2  musl-find_library.patch
-e394480daf6bbb4ea58adb9138ed767ef11bd82ff4f695bef2d670b757988137a99d0f6955f994942b4cade283c863a2b1070731491f4d302f41711b31664401  custom-bluetooth-h-path.patch
+14b00953cdb5fe757b38dbf759d7203c3504b46e330494ec195db92290640ec640fb29cc4456208a25dadc028ebaf211b0df71f458a3b76023fdafb4f91ff46a  custom-bluetooth-h-path.patch
 a84483246e413650a904c34c18f5e4f4168c39067d069f48557c330de6eb3db19fd96a4d453d742db3dcb7c7f962722903f62823c752ff90510c89830435ffc0  arm-alignment.patch
 "
diff --git a/main/python3/custom-bluetooth-h-path.patch b/main/python3/custom-bluetooth-h-path.patch
index 87c8520ca1533004e7631d7746003ae4c23399d8..3d836e3f88aad7dcd9b51d0097764fa003896963 100644
--- a/main/python3/custom-bluetooth-h-path.patch
+++ b/main/python3/custom-bluetooth-h-path.patch
@@ -7,7 +7,7 @@
 -libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
 +libutil.h sys/resource.h netpacket/packet.h sysexits.h \
  linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \
- sys/endian.h sys/sysmacros.h linux/auxvec.h linux/memfd.h linux/wait.h sys/memfd.h \
+ sys/endian.h sys/sysmacros.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/wait.h sys/memfd.h \
  sys/mman.h sys/eventfd.h)
  AC_HEADER_DIRENT
  AC_HEADER_MAJOR