diff --git a/deskutils/recoll/Makefile b/deskutils/recoll/Makefile
index 50a1cf4c2911..46b67457f4cf 100644
--- a/deskutils/recoll/Makefile
+++ b/deskutils/recoll/Makefile
@@ -1,99 +1,93 @@
-# Created by: J.F. Dockes <jean-francois.dockes@wanadoo.fr>
-
 PORTNAME=	recoll
-PORTVERSION=	1.31.2
+PORTVERSION=	1.31.4
 CATEGORIES=	deskutils
 MASTER_SITES=	https://www.lesbonscomptes.com/recoll/
 
 MAINTAINER=	jjuanino@gmail.com
 COMMENT=	Personal full text search package, based on Xapian
 
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR}
 LIB_DEPENDS=	libxapian.so:databases/xapian-core
-RUN_DEPENDS=	unrar:archivers/unrar \
-		antiword:textproc/antiword \
+RUN_DEPENDS=	antiword:textproc/antiword \
 		catdoc:textproc/catdoc \
-		wpd2html:textproc/libwpd010 \
-		unrtf:textproc/unrtf
+		unrar:archivers/unrar \
+		unrtf:textproc/unrtf \
+		wpd2html:textproc/libwpd010
 
 USES=		bison compiler:c++11-lang gmake gnome iconv libtool localbase \
 		pkgconfig python:3.5+ shebangfix
 USE_GNOME=	libxslt
 USE_LDCONFIG=	yes
 USE_PYTHON=	py3kplist
+PYDISTUTILS_PKGNAME=	Recoll
+PYDISTUTILS_PKGVERSION=	1.0
+USE_QT=		core gui printsupport widgets xml buildtools_build qmake_build
+
+SHEBANG_FILES=	desktop/hotrecoll.py filters/*.py filters/rcl7z \
+		filters/rclaudio filters/rclchm filters/rcldia filters/rclepub \
+		filters/rclepub1 filters/rclics filters/rclimg filters/rclinfo \
+		filters/rclkar filters/rclrar filters/rcltar filters/rclwar \
+		filters/rclzip
 
-SHEBANG_FILES=	filters/*.py filters/rcl7z filters/rclaudio \
-		filters/rclchm filters/rcldia filters/rclepub \
-		filters/rclepub1 filters/rclics filters/rclimg \
-		filters/rclinfo filters/rclkar \
-		filters/rclrar filters/rcltar filters/rclwar \
-		filters/rclzip desktop/hotrecoll.py
 GNU_CONFIGURE=	yes
-CONFIGURE_ARGS=	--enable-recollq --enable-xadump
+CONFIGURE_ARGS=	--enable-recollq \
+		--enable-xadump
 MAKE_ENV=	PYTHON_CMD=${PYTHON_CMD}
+BINARY_ALIAS=	python2=${FALSE} python3=${PYTHON_CMD}
 
-PYDISTUTILS_PKGNAME=	Recoll
-PYDISTUTILS_PKGVERSION=	1.0
+PLIST_SUB=	PYDISTUTILS_EGGINFO="${PYDISTUTILS_EGGINFO}" \
+		VERSION="${PORTVERSION}"
 
-PLIST_SUB=		VERSION="${PORTVERSION}" \
-			PYDISTUTILS_EGGINFO="${PYDISTUTILS_EGGINFO}"
-
-OPTIONS_DEFINE=		ASPELL CHM DJVU LATEX IMAGE PDF PS \
-			SOUND QT5 X11MON
-OPTIONS_DEFAULT=	ASPELL CHM IMAGE PDF PS QT5 SOUND
+OPTIONS_DEFINE=		ASPELL CHM DJVU IMAGE LATEX PDF PS QT5 SOUND X11MON
+OPTIONS_DEFAULT=	ASPELL CHM IMAGE PDF PS QT5 SOUND X11MON
 OPTIONS_SUB=		yes
 
-ASPELL_LIB_DEPENDS=	libaspell.so:textproc/aspell
-ASPELL_CONFIGURE_WITH=	aspell
-CHM_DESC=		Python bindings for Microsoft ITSS/CHM format
-CHM_LIB_DEPENDS=	libchm.so:misc/chmlib
-CHM_CONFIGURE_OFF=	--disable-python-chm
-DJVU_RUN_DEPENDS=	djvutxt:graphics/djvulibre
-IMAGE_DESC=		Store personal tags or textual descriptions in images
-IMAGE_RUN_DEPENDS=	exiftool:graphics/p5-Image-ExifTool
-LATEX_USE=		tex=dvipsk:run,latex:run
-PDF_RUN_DEPENDS=	pdftotext:graphics/poppler-utils
-PS_RUN_DEPENDS=		pstotext:print/pstotext
-USE_QT=			core gui printsupport widgets xml \
-			buildtools_build qmake_build
-QT5_USES=		qt:5 gl
-QT5_USE=		GL=gl
-QT5_CONFIGURE_ENABLE=	qtgui
-QT5_CONFIGURE_ON=	--disable-webkit
-QT5_CONFIGURE_ENV=	QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" \
-			QTDIR="${PREFIX}"
-SOUND_RUN_DEPENDS=	mutagen-pony-${PYTHON_VER}:audio/py-mutagen@${PY_FLAVOR}
-X11MON_DESC=		X11 session monitoring support
-X11MON_USES=		fam xorg
-X11MON_USE=		xorg=ice,sm,x11
+CHM_DESC=			Python bindings for Microsoft ITSS/CHM format
+IMAGE_DESC=			Store personal tags or textual descriptions in images
+X11MON_DESC=			X11 session monitoring support
+ASPELL_LIB_DEPENDS=		libaspell.so:textproc/aspell
+ASPELL_CONFIGURE_WITH=		aspell
+CHM_LIB_DEPENDS=		libchm.so:misc/chmlib
+CHM_CONFIGURE_OFF=		--disable-python-chm
+DJVU_RUN_DEPENDS=		djvutxt:graphics/djvulibre
+IMAGE_RUN_DEPENDS=		exiftool:graphics/p5-Image-ExifTool
+LATEX_USE=			dvipsk:run \
+				latex:run
+PDF_RUN_DEPENDS=		pdftotext:graphics/poppler-utils
+PS_RUN_DEPENDS=			pstotext:print/pstotext
+QT5_USES=			gl qt:5
+QT5_USE=			GL=gl
+QT5_CONFIGURE_ON=		--disable-webkit
+QT5_CONFIGURE_ENABLE=		qtgui
+QT5_CONFIGURE_ENV=		QMAKE="${QMAKE}" \
+				QMAKESPEC="${QMAKESPEC}" \
+				QTDIR="${PREFIX}"
+SOUND_RUN_DEPENDS=		mutagen-pony-${PYTHON_VER}:audio/py-mutagen@${PY_FLAVOR}
+X11MON_USES=			fam xorg
+X11MON_USE=			XORG=ice,sm,x11
 X11MON_CONFIGURE_ENABLE=	x11mon
-X11MON_CONFIGURE_WITH=	fam
+X11MON_CONFIGURE_WITH=		fam
 
 post-patch:
-	@${REINPLACE_CMD} -e \
-		's|@QMAKE@|${TRUE}|' \
+	@${REINPLACE_CMD} -e 's|@QMAKE@|${TRUE}|' \
 		${WRKSRC}/Makefile.in
-	@${REINPLACE_CMD} -e \
-		's|/usr/local/lib|${LOCALBASE}/lib|' \
+	@${REINPLACE_CMD} -e 's|/usr/local/lib|${LOCALBASE}/lib|' \
 		${WRKSRC}/configure
-	@${REINPLACE_CMD} -e \
-		's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \
-		${WRKSRC}/Makefile.in
 
 pre-build-QT5-on:
-	@cd ${WRKSRC}/qtgui && ${SETENV} ${QMAKE_ENV} ${QMAKE} \
-		${QMAKE_ARGS} recoll.pro
+	@cd ${WRKSRC}/qtgui && \
+		${SETENV} ${QMAKE_ENV} ${QMAKE} ${QMAKE_ARGS} recoll.pro
 
 post-install:
 	@${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/recoll/*.so \
 		${STAGEDIR}${PREFIX}/lib/recoll/*.so
 # Remove systemd unit files (useless on FreeBSD)
 	@${RM} ${STAGEDIR}${DATADIR}/examples/recollindex*.service
 
 post-install-CHM-on:
 	@${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/recollchm/*.so
 
 .include <bsd.port.mk>
diff --git a/deskutils/recoll/distinfo b/deskutils/recoll/distinfo
index 648f9be260cb..f49367a12ede 100644
--- a/deskutils/recoll/distinfo
+++ b/deskutils/recoll/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1633945035
-SHA256 (recoll-1.31.2.tar.gz) = d3edb28fa76f2bb15e6555f82ef74e9151a2271535d3fdeb5f34012b1c2c3c54
-SIZE (recoll-1.31.2.tar.gz) = 3689921
+TIMESTAMP = 1638053561
+SHA256 (recoll-1.31.4.tar.gz) = 6825f0ef2e4135e79c0a7cbbd1ab48be46d1caf9617f5b919ebffa85a1310156
+SIZE (recoll-1.31.4.tar.gz) = 3696726
diff --git a/deskutils/recoll/files/patch-Makefile.in b/deskutils/recoll/files/patch-Makefile.in
index 0be98671cc8b..45efba612812 100644
--- a/deskutils/recoll/files/patch-Makefile.in
+++ b/deskutils/recoll/files/patch-Makefile.in
@@ -1,49 +1,11 @@
---- Makefile.in.orig	2021-10-11 09:30:17 UTC
+--- Makefile.in.orig	2021-12-01 09:04:57 UTC
 +++ Makefile.in
 @@ -884,7 +884,7 @@ recollindex_SOURCES = \
      index/webqueue.cpp \
      index/webqueue.h
  
 -recollindex_LDADD = librecoll.la 
 +recollindex_LDADD = librecoll.la $(LIBFAM)
  recollq_SOURCES = query/recollqmain.cpp
  recollq_LDADD = librecoll.la
  xadump_SOURCES = query/xadump.cpp
-@@ -2795,16 +2795,12 @@ PicStatic: $(librecoll_la_OBJECTS)
- @MAKEPYTHON_TRUE@clean-local:: recollpython-clean
- @MAKEPYTHON_TRUE@recollpython: librecoll.la
- @MAKEPYTHON_TRUE@	(cd python/recoll; set -x; \
--@MAKEPYTHON_TRUE@        for v in 2 3;do test -n "`which python$${v}`" && \
--@MAKEPYTHON_TRUE@        libdir=$(libdir) python$${v} setup.py build; \
--@MAKEPYTHON_TRUE@        done \
-+@MAKEPYTHON_TRUE@        libdir=$(libdir) %%PYTHON_CMD%% setup.py build; \
- @MAKEPYTHON_TRUE@        )
- @MAKEPYTHON_TRUE@recollpython-install:
- @MAKEPYTHON_TRUE@	(cd python/recoll; set -x; \
--@MAKEPYTHON_TRUE@        for v in 2 3;do test -n "`which python$${v}`" && \
--@MAKEPYTHON_TRUE@        python$${v} setup.py install \
-+@MAKEPYTHON_TRUE@        %%PYTHON_CMD%% setup.py install \
- @MAKEPYTHON_TRUE@         --prefix=${prefix} --root=$${DESTDIR:-/} $(OPTSFORPYTHON); \
--@MAKEPYTHON_TRUE@        done; \
- @MAKEPYTHON_TRUE@         )
- @MAKEPYTHON_TRUE@recollpython-clean:
- @MAKEPYTHON_TRUE@	rm -f python/recoll/*.pyc
-@@ -2820,16 +2816,12 @@ PicStatic: $(librecoll_la_OBJECTS)
- @MAKEPYTHONCHM_TRUE@clean-local:: rclpychm-clean
- @MAKEPYTHONCHM_TRUE@rclpychm:
- @MAKEPYTHONCHM_TRUE@	(cd python/pychm; set -x; \
--@MAKEPYTHONCHM_TRUE@        for v in 2 3;do \
--@MAKEPYTHONCHM_TRUE@        test -n "`which python$${v}`" && python$${v} setup.py build;\
--@MAKEPYTHONCHM_TRUE@        done \
-+@MAKEPYTHONCHM_TRUE@        %%PYTHON_CMD%% setup.py build;\
- @MAKEPYTHONCHM_TRUE@        )
- @MAKEPYTHONCHM_TRUE@rclpychm-install:
- @MAKEPYTHONCHM_TRUE@	(cd python/pychm; set -x; \
--@MAKEPYTHONCHM_TRUE@        for v in 2 3;do test -n "`which python$${v}`" && \
--@MAKEPYTHONCHM_TRUE@        python$${v} setup.py install \
-+@MAKEPYTHONCHM_TRUE@        %%PYTHON_CMD%% setup.py install \
- @MAKEPYTHONCHM_TRUE@         --prefix=${prefix} --root=$${DESTDIR:-/} $(OPTSFORPYTHON); \
--@MAKEPYTHONCHM_TRUE@        done \
- @MAKEPYTHONCHM_TRUE@        )
- @MAKEPYTHONCHM_TRUE@rclpychm-clean:
- @MAKEPYTHONCHM_TRUE@	rm -rf python/pychm/build
diff --git a/deskutils/recoll/files/patch-utils_fstreewalk.cpp b/deskutils/recoll/files/patch-utils_fstreewalk.cpp
index 58691eb0c7ae..c249051f745f 100644
--- a/deskutils/recoll/files/patch-utils_fstreewalk.cpp
+++ b/deskutils/recoll/files/patch-utils_fstreewalk.cpp
@@ -1,10 +1,10 @@
---- utils/fstreewalk.cpp.orig	2020-08-30 18:31:25 UTC
+--- utils/fstreewalk.cpp.orig	2021-08-03 07:29:21 UTC
 +++ utils/fstreewalk.cpp
 @@ -17,6 +17,7 @@
  
  #include "autoconfig.h"
  
 +#include <sys/types.h>
  #include <stdio.h>
- #include <dirent.h>
+ 
  #include <errno.h>
diff --git a/deskutils/recoll/pkg-descr b/deskutils/recoll/pkg-descr
index 12b3340e007d..ed79eb6135b7 100644
--- a/deskutils/recoll/pkg-descr
+++ b/deskutils/recoll/pkg-descr
@@ -1,19 +1,19 @@
 Recoll is a personal full text search package. It is based on a very
 strong backend (Xapian), for which it provides an easy to use and
 feature-rich interface.
 
 Features:
  * Free, GPL license.
  * Easy installation, few dependencies. No database daemon, web server,
    desktop environment or exotic language necessary.
  * Will run on most Unix-based systems
- * Qt 4 GUI, plus command line.
+ * Qt 5 GUI, plus command line.
  * Searches most common document types, emails and their attachments.
    Transparently handles decompression (gzip, bzip2).
  * Powerful query facilities, with boolean searches, phrases, proximity,
    wildcards, filter on file types and directory tree.
  * Multi-language and multi-character set with Unicode based internals.
  * Extensive documentation, with a complete user manual and manual pages
    for each command.
 
 WWW: https://www.lesbonscomptes.com/recoll/