diff --git a/testing/zvbi/APKBUILD b/testing/zvbi/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..ce0767f6fd5d84071f1e98678bf2ec6d5a24a898
--- /dev/null
+++ b/testing/zvbi/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Gil Pedersen <gpdev@gpost.dk>
+# Maintainer: Gil Pedersen <gpdev@gpost.dk>
+pkgname=zvbi
+pkgver=0.2.43
+pkgrel=0
+pkgdesc="VBI capture and decoding tools"
+url="https://github.com/zapping-vbi/zvbi"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="automake autoconf libtool gettext-dev linux-headers libpng-dev"
+checkdepends="tzdata"
+subpackages="lib$pkgname-static lib$pkgname-dev lib$pkgname-lang $pkgname-doc lib$pkgname:libs"
+source="
+	https://github.com/zapping-vbi/zvbi/archive/v$pkgver/zvbi-$pkgver.tar.gz
+	fix-strptime-input.patch
+"
+
+prepare() {
+	default_prepare
+
+	./autogen.sh
+}
+
+build() {
+	CPPFLAGS="$CPPFLAGS -D__va_copy=va_copy" \
+	./configure \
+		--build=$CBUILD \
+		--host=$CHOST \
+		--prefix=/usr \
+		--sysconfdir=/etc \
+		--mandir=/usr/share/man \
+		--localstatedir=/var \
+		--disable-dependency-tracking
+	make
+}
+
+check() {
+	make check
+}
+
+package() {
+	make DESTDIR="$pkgdir" install
+
+	install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING.md
+}
+
+sha512sums="
+7216e6a3538e4b37d11dd45e5ebaf2b7c0c3b4ba4824e5854d508711f6a048fb9c3bb7b02262c0d91ef3019568ca1119b4b46043a23d1176edfcc78d48f70f48  zvbi-0.2.43.tar.gz
+c7d4a79775c7ac7d402bb8b1ccdf04a10e818031d193791856542dc4ee110493f94c63c01792c87ce8119c9485db4581dac697366b48b63960a99c09117dee4c  fix-strptime-input.patch
+"
diff --git a/testing/zvbi/fix-strptime-input.patch b/testing/zvbi/fix-strptime-input.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fa24a6f92b9b6e364eb2d40ac5f6c4e71441ef5e
--- /dev/null
+++ b/testing/zvbi/fix-strptime-input.patch
@@ -0,0 +1,12 @@
+--- zvbi-0.2.43/examples/pdc2.c	2024-12-03 15:58:59.000000000 +0100
++++ zvbi-0.2.43-patched/examples/pdc2.c	2024-12-04 15:30:16.732859533 +0100
+@@ -1166,6 +1166,9 @@
+ 	if (!isspace (*s))
+ 		goto invalid;
+ 
++	while (isspace (*s))
++		++s;
++
+ 	memset (&tm, 0, sizeof (tm));
+ 	tm.tm_isdst = -1; /* unknown */
+