diff --git a/deskutils/i3lock/Makefile b/deskutils/i3lock/Makefile
index 6ba6ea7408bdaff21fb62c8f03bdc7fb262feef9..48e51fa8d966e16d7ce11c046bd666925e13e204 100644
--- a/deskutils/i3lock/Makefile
+++ b/deskutils/i3lock/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	i3lock
-PORTVERSION=	2.13
-PORTREVISION=	2
+PORTVERSION=	2.15
 CATEGORIES=	deskutils x11
 MASTER_SITES=	http://i3wm.org/${PORTNAME}/
 
@@ -26,12 +25,10 @@ PLIST_FILES=	bin/i3lock \
 		share/man/man1/i3lock.1.gz \
 		etc/pam.d/i3lock
 
-USES=		gmake iconv localbase pkgconfig tar:bzip2 xorg
+USES=		iconv localbase meson pkgconfig tar:xz xorg
 LDFLAGS+=	${ICONV_LIB}
 USE_XORG=	x11 xcb xt xorgproto xext
 USE_CSTD=	c99
-GNU_CONFIGURE=	yes
-GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
 
 CONFLICTS_INSTALL=	i3lock-color
 
@@ -40,7 +37,6 @@ PORTDOCS=	CHANGELOG README.md
 OPTIONS_DEFINE=	DOCS
 
 post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/i3lock
 	@${RM} ${STAGEDIR}${PREFIX}/etc/pam.d/i3lock
 	@${LN} -s ${LOCALBASE}/etc/pam.d/unix-selfauth \
 		${STAGEDIR}${PREFIX}/etc/pam.d/i3lock
diff --git a/deskutils/i3lock/distinfo b/deskutils/i3lock/distinfo
index 5fafb62c0ff661065375368548adf11e30a31ec2..fe079f912a6106ce5395a4cff5ae9da9a6e67232 100644
--- a/deskutils/i3lock/distinfo
+++ b/deskutils/i3lock/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1603984277
-SHA256 (i3lock-2.13.tar.bz2) = 637fe898acb324337d3ebc4fcdb2e390b082147fdc8a0cda6c19e7f395965f0b
-SIZE (i3lock-2.13.tar.bz2) = 149332
+TIMESTAMP = 1710759931
+SHA256 (i3lock-2.15.tar.xz) = 5711ae5255e82b1dc8d8b4c035c520230921aba7ceee23d66f79765b21a84baa
+SIZE (i3lock-2.15.tar.xz) = 29100
diff --git a/deskutils/i3lock/files/patch-meson.build b/deskutils/i3lock/files/patch-meson.build
new file mode 100644
index 0000000000000000000000000000000000000000..ebf7b27d07deff049a5ece058ed42cc670ab0e3a
--- /dev/null
+++ b/deskutils/i3lock/files/patch-meson.build
@@ -0,0 +1,11 @@
+--- meson.build.orig	2024-03-16 09:37:48 UTC
++++ meson.build
+@@ -92,7 +92,7 @@ i3lock_srcs = [
+   'xcb.c',
+ ]
+ 
+-ev_dep = cc.find_library('ev')
++ev_dep = dependency('libev', method: 'pkg-config')
+ 
+ thread_dep = dependency('threads')
+