diff --git a/testing/udpt/APKBUILD b/testing/udpt/APKBUILD
index 3ed8319e1c6c1aac42e636d5fa154264102ee201..a06fc0930cbe0544683bf9e49fd91d94e5c4da79 100644
--- a/testing/udpt/APKBUILD
+++ b/testing/udpt/APKBUILD
@@ -1,8 +1,8 @@
 # Contributor: Thomas Kienlen <kommander@laposte.net>
 # Maintainer: Thomas Kienlen <kommander@laposte.net>
 pkgname=udpt
-pkgver=3.1.1
-pkgrel=1
+pkgver=3.1.2
+pkgrel=0
 pkgdesc="Lightweight UDP torrent tracker"
 url="https://github.com/naim94a/udpt"
 arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust/cargo
@@ -12,20 +12,23 @@ pkgusers="udpt"
 pkggroups="udpt"
 install="udpt.pre-install"
 subpackages="$pkgname-openrc"
-source="https://github.com/naim94a/udpt/archive/udpt-$pkgver/udpt-$pkgver.tar.gz
+source="https://github.com/naim94a/udpt/archive/refs/tags/v$pkgver/udpt-$pkgver.tar.gz
+	lock.patch
 	udpt.initd
 	udpt.conf
-	cargo.toml.patch
 	"
-builddir="$srcdir/udpt-udpt-$pkgver"
 
+prepare() {
+	default_prepare
+	cargo fetch --target="$CTARGET" --locked
+}
 
 build() {
-	cargo auditable build --release --locked
+	cargo auditable build --release --frozen
 }
 
 check() {
-	cargo test --locked --target-dir=target
+	cargo test --frozen
 }
 
 package() {
@@ -35,8 +38,8 @@ package() {
 }
 
 sha512sums="
-05a707ec22d0d27ef7ed47eb2144b27c448ae48cc78d7fa9492a81911a7a8759768b079ab71df2a1ae63897241b70712dc0728fe6877481680d53e87536b1ff5  udpt-3.1.1.tar.gz
+de0d715a87be3568448c61ae9b6484c4b9ad5863d956119ed80b3e821135208f59ca0a06dfa027b501dae51596d30f8f4ea81aba235f1f8464c77b9acc49e909  udpt-3.1.2.tar.gz
+b28ecc070fe27b7d71fa8812f5dc7412c1bbd28bbc160028fb8abf65c6408bbd39d416aa931ef41dd1733d9f92a54172e41b6083a8ed5ac996b2bb557e979f84  lock.patch
 e233e4d76a0ad458579810ebb9d5697604bfebb0f51f218bcd27ceff55d2a86c50bc28b278da6793f6e688492eb962043f1e876852b3d8dcec046bff56abe78b  udpt.initd
 9646e424a2fe4355745241ce84f989453bf75b26bad772d2ba7e72eade6b51d5f8d4b6e3eb671edff3c892a47dda029a3aed93276a3a4f992db13cce57e1521d  udpt.conf
-a154f539a10419fb7f3ff3c47938d15960ef74f41c537c8dbc8435a460b506506c431b1331d4e6b62dd6aaf0b7cf6d7f98fd17b9d49779043a308b6b4152497c  cargo.toml.patch
 "
diff --git a/testing/udpt/cargo.toml.patch b/testing/udpt/cargo.toml.patch
deleted file mode 100644
index ae2f8d33f215ad7c66afc60a52bd0cf9d585d94f..0000000000000000000000000000000000000000
--- a/testing/udpt/cargo.toml.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Optimize binary size (2.3 MB -> 1.5 MB)
-
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -6,7 +6,10 @@ description = "High performance torrent
- edition = "2018"
- 
- [profile.release]
--lto = "fat"
-+codegen-units = 1
-+lto = true
-+opt-level = "z"
-+panic = "abort"
- 
- [dependencies]
- serde = {version = "1.0", features = ["derive"]}
diff --git a/testing/udpt/lock.patch b/testing/udpt/lock.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e6dc30954a7271e432b886e02d0a93cdc83ab7ee
--- /dev/null
+++ b/testing/udpt/lock.patch
@@ -0,0 +1,13 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 48cd614..7dfed24 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -800,7 +800,7 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+ 
+ [[package]]
+ name = "udpt-rs"
+-version = "3.1.1"
++version = "3.1.2"
+ dependencies = [
+  "async-compression",
+  "binascii",