From 2d87115f8c5e79c7b33f526c4ba4e151d63baf4e Mon Sep 17 00:00:00 2001
From: Charlie Li <vishwin@FreeBSD.org>
Date: Fri, 30 Dec 2022 09:07:08 -0500
Subject: [PATCH] x11/cinnamon: update to 5.4

Components:
- lang/cjs to 5.4.1
- misc/cinnamon-translations to 5.4.2
- sysutils/cinnamon-control-center to 5.4.6
- sysutils/cinnamon-settings-daemon to 5.4.4
- x11-fm/nemo to 5.4.2
- x11-wm/muffin to 5.4.5
- x11/cinnamon-desktop to 5.4.2
- x11/cinnamon-menus to 5.4.0
- x11/cinnamon-screensaver to 5.4.2
- x11/cinnamon-session to 5.4.0
- x11/cinnamon to 5.4.9
- x11/py-python-xapp to 2.2.2
- x11/xapp to 2.2.14

5.6 is the latest upstream release; this is a stopgap to reduce
delta.

Reviewed by: tcberner (desktop)
Differential Revision: https://reviews.freebsd.org/D37917
---
 lang/cjs/Makefile                             |  12 +-
 lang/cjs/distinfo                             |   8 +-
 misc/cinnamon-translations/Makefile           |   3 +-
 misc/cinnamon-translations/distinfo           |   6 +-
 misc/cinnamon-translations/pkg-plist          |  22 ++
 sysutils/cinnamon-control-center/Makefile     |  20 +-
 sysutils/cinnamon-control-center/distinfo     |   6 +-
 .../files/patch-meson.build                   |  11 +
 .../patch-panels_display_icons_meson.build    |  11 +
 sysutils/cinnamon-control-center/pkg-plist    |   7 +-
 sysutils/cinnamon-settings-daemon/Makefile    |  18 +-
 sysutils/cinnamon-settings-daemon/distinfo    |   6 +-
 .../patch-plugins_xrandr_csd-xrandr-manager.c |  11 -
 sysutils/cinnamon-settings-daemon/pkg-plist   |  37 +-
 x11-fm/nemo/Makefile                          |  17 +-
 x11-fm/nemo/distinfo                          |   6 +-
 x11-fm/nemo/pkg-plist                         |  22 ++
 x11-wm/muffin/Makefile                        |  72 ++--
 x11-wm/muffin/distinfo                        |   6 +-
 .../patch-clutter_clutter_cally_cally-text.c  |  27 ++
 x11-wm/muffin/files/patch-uint                |  67 ++++
 x11-wm/muffin/pkg-plist                       | 351 ++++++++----------
 x11/cinnamon-desktop/Makefile                 |   7 +-
 x11/cinnamon-desktop/distinfo                 |   6 +-
 .../files/patch-libcvc_gvc-channel-map.c      |  31 ++
 x11/cinnamon-desktop/pkg-plist                |   2 +
 x11/cinnamon-menus/Makefile                   |   2 +-
 x11/cinnamon-menus/distinfo                   |   6 +-
 x11/cinnamon-screensaver/Makefile             |  27 +-
 x11/cinnamon-screensaver/distinfo             |   6 +-
 .../files/cinnamon-screensaver.pam.in         |   1 +
 x11/cinnamon-screensaver/pkg-plist            |  11 +-
 x11/cinnamon-session/Makefile                 |  14 +-
 x11/cinnamon-session/distinfo                 |   6 +-
 x11/cinnamon-session/pkg-plist                |   1 -
 x11/cinnamon/Makefile                         |  32 +-
 x11/cinnamon/distinfo                         |   8 +-
 ...are_cinnamon_cinnamon-settings_bin_capi.py |  39 ++
 ...are_cinnamon_cinnamon-settings_bin_util.py |  11 +
 .../files/patch-src_cinnamon-global.c         |  22 ++
 x11/cinnamon/files/patch-src_st_meson.build   |  19 -
 x11/cinnamon/pkg-plist                        |  48 ++-
 x11/py-python-xapp/Makefile                   |   7 +-
 x11/py-python-xapp/distinfo                   |   6 +-
 x11/xapp/Makefile                             |   2 +-
 x11/xapp/distinfo                             |   6 +-
 46 files changed, 623 insertions(+), 443 deletions(-)
 create mode 100644 sysutils/cinnamon-control-center/files/patch-meson.build
 create mode 100644 sysutils/cinnamon-control-center/files/patch-panels_display_icons_meson.build
 delete mode 100644 sysutils/cinnamon-settings-daemon/files/patch-plugins_xrandr_csd-xrandr-manager.c
 create mode 100644 x11-wm/muffin/files/patch-clutter_clutter_cally_cally-text.c
 create mode 100644 x11-wm/muffin/files/patch-uint
 create mode 100644 x11/cinnamon-desktop/files/patch-libcvc_gvc-channel-map.c
 create mode 100644 x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_capi.py
 create mode 100644 x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_util.py
 create mode 100644 x11/cinnamon/files/patch-src_cinnamon-global.c
 delete mode 100644 x11/cinnamon/files/patch-src_st_meson.build

diff --git a/lang/cjs/Makefile b/lang/cjs/Makefile
index 9676830c2d1c..776426f2fb2a 100644
--- a/lang/cjs/Makefile
+++ b/lang/cjs/Makefile
@@ -1,12 +1,14 @@
 PORTNAME=	cjs
-PORTVERSION=	4.8.2
-PORTREVISION=	1
+PORTVERSION=	5.4.1
 CATEGORIES=	lang gnome
 DIST_SUBDIR=	gnome
 
+PATCH_SITES=	https://gitlab.gnome.org/GNOME/gjs/-/commit/
+PATCHFILES=	f93880c356108cfdbc8f9ebe318d18f256d7128d.patch:-p1 # https://gitlab.gnome.org/GNOME/gjs/-/issues/514
+
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	JavaScript bindings based on gobject-introspection
-WWW=		http://cinnamon.linuxmint.com
+WWW=		https://github.com/linuxmint/cjs
 
 LICENSE=		MIT LGPL20+
 LICENSE_COMB=		dual
@@ -16,8 +18,8 @@ LICENSE_FILE_LGPL20+ =	${WRKSRC}/COPYING.LGPL
 LIB_DEPENDS=	libffi.so:devel/libffi \
 		libmozjs-78.so:lang/spidermonkey78
 
-USES=		compiler:c++14-lang gettext gnome localbase meson pkgconfig \
-		python:3.5+,build readline shebangfix xorg
+USES=		compiler:c++17-lang gettext gnome localbase meson pkgconfig \
+		python:build readline shebangfix xorg
 USE_GNOME=	cairo gdkpixbuf2 gtk30 introspection
 USE_XORG=	x11 xext
 MESON_ARGS=	-Dinstalled_tests=false \
diff --git a/lang/cjs/distinfo b/lang/cjs/distinfo
index f75743f2f749..9c843f20af8a 100644
--- a/lang/cjs/distinfo
+++ b/lang/cjs/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1610463497
-SHA256 (gnome/linuxmint-cjs-4.8.2_GH0.tar.gz) = c3248663e0084dbcee1bf4d1db56966c1321983617dbbec9b1253e50614a3f4e
-SIZE (gnome/linuxmint-cjs-4.8.2_GH0.tar.gz) = 600711
+TIMESTAMP = 1677355395
+SHA256 (gnome/linuxmint-cjs-5.4.1_GH0.tar.gz) = 212fa302f15ea955af6dc87fdba3898f751d078df91cb84b0e6615d5a2b84e15
+SIZE (gnome/linuxmint-cjs-5.4.1_GH0.tar.gz) = 794618
+SHA256 (gnome/f93880c356108cfdbc8f9ebe318d18f256d7128d.patch) = 254299e1b39987c53c3c4943fcc3c4e0b00a27442192243e3c7c1589969f2811
+SIZE (gnome/f93880c356108cfdbc8f9ebe318d18f256d7128d.patch) = 1674
diff --git a/misc/cinnamon-translations/Makefile b/misc/cinnamon-translations/Makefile
index 241c6d33a603..c2f61eb58e6a 100644
--- a/misc/cinnamon-translations/Makefile
+++ b/misc/cinnamon-translations/Makefile
@@ -1,10 +1,11 @@
 PORTNAME=	cinnamon-translations
-PORTVERSION=	4.8.3
+PORTVERSION=	5.4.2
 CATEGORIES=	misc x11 gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Translations for the cinnamon desktop
+WWW=		https://github.com/linuxmint/cinnamon-translations
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
diff --git a/misc/cinnamon-translations/distinfo b/misc/cinnamon-translations/distinfo
index 5ce47718a919..43bb77bcfb14 100644
--- a/misc/cinnamon-translations/distinfo
+++ b/misc/cinnamon-translations/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1612567721
-SHA256 (gnome/linuxmint-cinnamon-translations-4.8.3_GH0.tar.gz) = 272b4e128b352f8a877bb57eaa4ed85ff72ad1cb25c4c58c8a35d0b093908f93
-SIZE (gnome/linuxmint-cinnamon-translations-4.8.3_GH0.tar.gz) = 12010514
+TIMESTAMP = 1660015818
+SHA256 (gnome/linuxmint-cinnamon-translations-5.4.2_GH0.tar.gz) = ef28ba08f32d1e2c8845d6a41742553b90f1afe8d3766d3d4df5c17ee5d565d3
+SIZE (gnome/linuxmint-cinnamon-translations-5.4.2_GH0.tar.gz) = 12650460
diff --git a/misc/cinnamon-translations/pkg-plist b/misc/cinnamon-translations/pkg-plist
index 8ab40b5ca0c4..a8b914a73a8f 100644
--- a/misc/cinnamon-translations/pkg-plist
+++ b/misc/cinnamon-translations/pkg-plist
@@ -1,3 +1,5 @@
+share/locale/aa/LC_MESSAGES/cinnamon-screensaver.mo
+share/locale/aa/LC_MESSAGES/cinnamon.mo
 share/locale/af/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/af/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/af/LC_MESSAGES/cinnamon-session.mo
@@ -19,6 +21,7 @@ share/locale/ar/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/ar/LC_MESSAGES/cinnamon.mo
 share/locale/ar/LC_MESSAGES/nemo-extensions.mo
 share/locale/ar/LC_MESSAGES/nemo.mo
+share/locale/ary/LC_MESSAGES/cinnamon.mo
 share/locale/as/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/as/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/as/LC_MESSAGES/cinnamon-session.mo
@@ -30,6 +33,13 @@ share/locale/ast/LC_MESSAGES/cinnamon-session.mo
 share/locale/ast/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/ast/LC_MESSAGES/cinnamon.mo
 share/locale/ast/LC_MESSAGES/nemo.mo
+share/locale/ay/LC_MESSAGES/cinnamon-control-center.mo
+share/locale/ay/LC_MESSAGES/cinnamon-screensaver.mo
+share/locale/ay/LC_MESSAGES/cinnamon-session.mo
+share/locale/ay/LC_MESSAGES/cinnamon-settings-daemon.mo
+share/locale/ay/LC_MESSAGES/cinnamon.mo
+share/locale/ay/LC_MESSAGES/nemo-extensions.mo
+share/locale/ay/LC_MESSAGES/nemo.mo
 share/locale/az/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/az/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/az/LC_MESSAGES/cinnamon-session.mo
@@ -60,6 +70,7 @@ share/locale/bn/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/bn/LC_MESSAGES/cinnamon-session.mo
 share/locale/bn/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/bn/LC_MESSAGES/cinnamon.mo
+share/locale/bn/LC_MESSAGES/nemo-extensions.mo
 share/locale/bn/LC_MESSAGES/nemo.mo
 share/locale/bn_IN/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/bn_IN/LC_MESSAGES/cinnamon-screensaver.mo
@@ -146,6 +157,7 @@ share/locale/en_AU/LC_MESSAGES/cinnamon.mo
 share/locale/en_AU/LC_MESSAGES/nemo.mo
 share/locale/en_CA/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/en_CA/LC_MESSAGES/cinnamon-screensaver.mo
+share/locale/en_CA/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/en_CA/LC_MESSAGES/cinnamon-session.mo
 share/locale/en_CA/LC_MESSAGES/cinnamon.mo
 share/locale/en_CA/LC_MESSAGES/nemo.mo
@@ -278,6 +290,7 @@ share/locale/hr/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/hr/LC_MESSAGES/cinnamon.mo
 share/locale/hr/LC_MESSAGES/nemo-extensions.mo
 share/locale/hr/LC_MESSAGES/nemo.mo
+share/locale/hsb/LC_MESSAGES/cinnamon.mo
 share/locale/hu/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/hu/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/hu/LC_MESSAGES/cinnamon-session.mo
@@ -382,11 +395,15 @@ share/locale/ku/LC_MESSAGES/nemo.mo
 share/locale/ky/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/ky/LC_MESSAGES/cinnamon.mo
 share/locale/ky/LC_MESSAGES/nemo.mo
+share/locale/la/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/la/LC_MESSAGES/cinnamon-screensaver.mo
+share/locale/la/LC_MESSAGES/cinnamon-session.mo
+share/locale/la/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/la/LC_MESSAGES/cinnamon.mo
 share/locale/la/LC_MESSAGES/nemo-extensions.mo
 share/locale/la/LC_MESSAGES/nemo.mo
 share/locale/li/LC_MESSAGES/cinnamon.mo
+share/locale/lmo/LC_MESSAGES/cinnamon.mo
 share/locale/lo/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/lo/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/lo/LC_MESSAGES/cinnamon-session.mo
@@ -431,6 +448,7 @@ share/locale/mn/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/mn/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/mn/LC_MESSAGES/cinnamon-session.mo
 share/locale/mn/LC_MESSAGES/cinnamon-settings-daemon.mo
+share/locale/mo/LC_MESSAGES/nemo.mo
 share/locale/mr/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/mr/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/mr/LC_MESSAGES/cinnamon-session.mo
@@ -455,6 +473,7 @@ share/locale/nb/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/nb/LC_MESSAGES/cinnamon-session.mo
 share/locale/nb/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/nb/LC_MESSAGES/cinnamon.mo
+share/locale/nb/LC_MESSAGES/nemo-extensions.mo
 share/locale/nb/LC_MESSAGES/nemo.mo
 share/locale/nds/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/nds/LC_MESSAGES/cinnamon-screensaver.mo
@@ -491,6 +510,7 @@ share/locale/oc/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/oc/LC_MESSAGES/cinnamon-session.mo
 share/locale/oc/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/oc/LC_MESSAGES/cinnamon.mo
+share/locale/oc/LC_MESSAGES/nemo-extensions.mo
 share/locale/oc/LC_MESSAGES/nemo.mo
 share/locale/om/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/om/LC_MESSAGES/cinnamon-screensaver.mo
@@ -599,6 +619,7 @@ share/locale/sr/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/sr/LC_MESSAGES/cinnamon.mo
 share/locale/sr/LC_MESSAGES/nemo-extensions.mo
 share/locale/sr/LC_MESSAGES/nemo.mo
+share/locale/sr@ijekavian/LC_MESSAGES/cinnamon.mo
 share/locale/sr@ijekavianlatin/LC_MESSAGES/cinnamon.mo
 share/locale/sr@latin/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/sr@latin/LC_MESSAGES/cinnamon-screensaver.mo
@@ -688,6 +709,7 @@ share/locale/uz/LC_MESSAGES/cinnamon-screensaver.mo
 share/locale/uz/LC_MESSAGES/cinnamon-session.mo
 share/locale/uz/LC_MESSAGES/cinnamon-settings-daemon.mo
 share/locale/uz/LC_MESSAGES/cinnamon.mo
+share/locale/uz/LC_MESSAGES/nemo-extensions.mo
 share/locale/uz/LC_MESSAGES/nemo.mo
 share/locale/uz@cyrillic/LC_MESSAGES/cinnamon-control-center.mo
 share/locale/uz@cyrillic/LC_MESSAGES/cinnamon-session.mo
diff --git a/sysutils/cinnamon-control-center/Makefile b/sysutils/cinnamon-control-center/Makefile
index c681b9d1e254..8c51d04fa6bf 100644
--- a/sysutils/cinnamon-control-center/Makefile
+++ b/sysutils/cinnamon-control-center/Makefile
@@ -1,12 +1,11 @@
 PORTNAME=	cinnamon-control-center
-PORTVERSION=	4.8.2
-PORTREVISION=	2
+PORTVERSION=	5.4.6
 CATEGORIES=	sysutils gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Control center for Cinnamon
-WWW=		http://cinnamon.linuxmint.com
+WWW=		https://github.com/linuxmint/cinnamon-control-center
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
@@ -21,13 +20,14 @@ LIB_DEPENDS=	libcinnamon-desktop.so:x11/cinnamon-desktop \
 		libnotify.so:devel/libnotify \
 		libpolkit-gobject-1.so:sysutils/polkit \
 		libxklavier.so:x11/libxklavier \
-		libharfbuzz.so:print/harfbuzz
-RUN_DEPENDS=	iso-codes>0:misc/iso-codes \
-		cinnamon-settings-daemon>=1.0.0:sysutils/cinnamon-settings-daemon
+		libharfbuzz.so:print/harfbuzz \
+		libupower-glib.so:sysutils/upower \
+		libgudev-1.0.so:devel/libgudev
+RUN_DEPENDS:=	${BUILD_DEPENDS}
 
-USES=		gettext gnome meson pkgconfig python:3.5+,build shebangfix xorg
-USE_GNOME=	cairo gdkpixbuf2 gtk30 intltool libgnomekbd libxml2
-USE_XORG=	x11 xfixes sm
+USES=		gettext gnome meson pkgconfig python:build shebangfix xorg
+USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 intltool libgnomekbd libxml2
+USE_XORG=	x11 xfixes xorgproto sm
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
@@ -39,6 +39,8 @@ MESON_ARGS=	-Dnetworkmanager=false \
 
 SHEBANG_GLOB=	*.py
 
+GLIB_SCHEMAS=	org.cinnamon.control-center.display.gschema.xml
+
 OPTIONS_DEFINE=	COLORD ONLINEACCOUNTS WACOM
 OPTIONS_DEFAULT=COLORD ONLINEACCOUNTS WACOM
 OPTIONS_SUB=	yes
diff --git a/sysutils/cinnamon-control-center/distinfo b/sysutils/cinnamon-control-center/distinfo
index 4bde1594df02..2fbdd9028240 100644
--- a/sysutils/cinnamon-control-center/distinfo
+++ b/sysutils/cinnamon-control-center/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1612595657
-SHA256 (gnome/linuxmint-cinnamon-control-center-4.8.2_GH0.tar.gz) = 407e88fe458af7b25c0dd91d54aad93a72a1464ced285a741ed1ce6249ed61af
-SIZE (gnome/linuxmint-cinnamon-control-center-4.8.2_GH0.tar.gz) = 3865765
+TIMESTAMP = 1660021625
+SHA256 (gnome/linuxmint-cinnamon-control-center-5.4.6_GH0.tar.gz) = e20cd4e94b0110b31753f81dd209e88d0dcc350450aa365c7227c5ca8f92e0ac
+SIZE (gnome/linuxmint-cinnamon-control-center-5.4.6_GH0.tar.gz) = 3872754
diff --git a/sysutils/cinnamon-control-center/files/patch-meson.build b/sysutils/cinnamon-control-center/files/patch-meson.build
new file mode 100644
index 000000000000..37fbd7eb2f28
--- /dev/null
+++ b/sysutils/cinnamon-control-center/files/patch-meson.build
@@ -0,0 +1,11 @@
+--- meson.build.orig	2022-07-04 07:39:25 UTC
++++ meson.build
+@@ -38,7 +38,7 @@ upower_glib_dep = dependency('upower-glib', version: '
+ libxklavier = dependency('libxklavier',     version: '>=5.1')
+ upower_glib_dep = dependency('upower-glib', version: '>= 0.99.8')
+ 
+-config.set('HAVE_X11_EXTENSIONS_XKB_H', cc.has_header('X11/extensions/XKB.h'))
++config.set('HAVE_X11_EXTENSIONS_XKB_H', dependency('kbproto', required: false).found())
+ 
+ ###############################################################################
+ # This is a hard-dependency for the region and user-accounts panels
diff --git a/sysutils/cinnamon-control-center/files/patch-panels_display_icons_meson.build b/sysutils/cinnamon-control-center/files/patch-panels_display_icons_meson.build
new file mode 100644
index 000000000000..52a159dc00da
--- /dev/null
+++ b/sysutils/cinnamon-control-center/files/patch-panels_display_icons_meson.build
@@ -0,0 +1,11 @@
+--- panels/display/icons/meson.build.orig	2022-07-04 07:39:25 UTC
++++ panels/display/icons/meson.build
+@@ -6,7 +6,7 @@ icon_sizes = [
+   'scalable'
+ ]
+ 
+-foreach size : sizes
++foreach size : icon_sizes
+   install_subdir(size,
+     strip_directory: true,
+     install_dir: get_option('datadir') / 'icons' / 'hicolor' / size / 'apps',
diff --git a/sysutils/cinnamon-control-center/pkg-plist b/sysutils/cinnamon-control-center/pkg-plist
index 5461aa3253fe..53e9b46464b5 100644
--- a/sysutils/cinnamon-control-center/pkg-plist
+++ b/sysutils/cinnamon-control-center/pkg-plist
@@ -13,13 +13,16 @@ lib/libcinnamon-control-center.so.1.0.0
 libdata/pkgconfig/libcinnamon-control-center.pc
 %%COLORD%%share/applications/cinnamon-color-panel.desktop
 share/applications/cinnamon-display-panel.desktop
-share/applications/cinnamon-region-panel.desktop
 %%WACOM%%share/applications/cinnamon-wacom-panel.desktop
+%%COLORD%%%%DATADIR%%/panels/cinnamon-color-panel.desktop
+%%DATADIR%%/panels/cinnamon-display-panel.desktop
+%%ONLINEACCOUNTS%%%%DATADIR%%/panels/cinnamon-online-accounts.desktop
+%%DATADIR%%/panels/cinnamon-region-panel.desktop
+%%WACOM%%%%DATADIR%%/panels/cinnamon-wacom-panel.desktop
 %%DATADIR%%/ui/cinnamon-region-panel-layout-chooser.ui
 %%DATADIR%%/ui/cinnamon-region-panel-options-dialog.ui
 %%DATADIR%%/ui/cinnamon-region-panel.ui
 %%COLORD%%%%DATADIR%%/ui/color.ui
-%%DATADIR%%/ui/display-capplet.ui
 %%DATADIR%%/ui/language-chooser.ui
 %%ONLINEACCOUNTS%%%%DATADIR%%/ui/online-accounts.ui
 %%DATADIR%%/ui/shell.ui
diff --git a/sysutils/cinnamon-settings-daemon/Makefile b/sysutils/cinnamon-settings-daemon/Makefile
index 0f3abddeaf25..8277ec7f8de7 100644
--- a/sysutils/cinnamon-settings-daemon/Makefile
+++ b/sysutils/cinnamon-settings-daemon/Makefile
@@ -1,12 +1,11 @@
 PORTNAME=	cinnamon-settings-daemon
-PORTVERSION=	4.8.5
-PORTREVISION=	2
+PORTVERSION=	5.4.4
 CATEGORIES=	sysutils gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Cinnamon desktop settings daemon
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/cinnamon-settings-daemon
 
 LICENSE=	GPLv2 LGPL21
 LICENSE_COMB=	multi
@@ -14,14 +13,11 @@ LICENSE_FILE_GPLv2=	${WRKSRC}/COPYING
 LICENSE_FILE_LGPL21=	${WRKSRC}/COPYING.LIB
 
 BUILD_DEPENDS=	cinnamon-session:x11/cinnamon-session \
-		xf86-input-wacom>0:x11-drivers/xf86-input-wacom \
 		gln:sysutils/coreutils
 LIB_DEPENDS=	libcanberra.so:audio/libcanberra \
 		libcanberra-gtk3.so:audio/libcanberra-gtk3 \
 		libpolkit-gobject-1.so:sysutils/polkit \
 		libgudev-1.0.so:devel/libgudev \
-		libdbus-1.so:devel/dbus \
-		libdbus-glib-1.so:devel/dbus-glib \
 		libcolord.so:graphics/colord \
 		liblcms2.so:graphics/lcms2 \
 		libcinnamon-desktop.so:x11/cinnamon-desktop \
@@ -36,9 +32,9 @@ LIB_DEPENDS=	libcanberra.so:audio/libcanberra \
 RUN_DEPENDS=	cinnamon-session:x11/cinnamon-session
 
 USES=		compiler:c11 gettext-tools gnome localbase meson pkgconfig \
-		python:3.5+,build shebangfix xorg
-USE_GNOME=	cairo gdkpixbuf2 gtk30 intltool libgnomekbd librsvg2
-USE_XORG=	x11 xext xfixes xi xtst
+		python:build shebangfix xorg
+USE_GNOME=	cairo dconf gdkpixbuf2 gtk30 intltool libgnomekbd pango
+USE_XORG=	x11 xext xfixes xi
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
@@ -69,11 +65,13 @@ CUPS_MESON_ENABLED=	use_cups
 CUPS_LIB_DEPENDS=	libcups.so:print/cups
 
 SMARTCARD_DESC=	Smartcard support
-SMARTCARD_MESON_ENABLED=	enable_smartcard
+SMARTCARD_MESON_ENABLED=	use_smartcard
 SMARTCARD_LIB_DEPENDS=	libnss3.so:security/nss
 
 WACOM_DESC=	Tablet support with libwacom
+WACOM_MESON_ENABLED=	use_wacom
 WACOM_LIB_DEPENDS=	libwacom.so:x11/libwacom
+WACOM_USE=	gnome=librsvg2
 
 post-patch:
 	# Adhere to our hier(7).
diff --git a/sysutils/cinnamon-settings-daemon/distinfo b/sysutils/cinnamon-settings-daemon/distinfo
index 602b5ea391a8..4ba7e767eb4d 100644
--- a/sysutils/cinnamon-settings-daemon/distinfo
+++ b/sysutils/cinnamon-settings-daemon/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1612567899
-SHA256 (gnome/linuxmint-cinnamon-settings-daemon-4.8.5_GH0.tar.gz) = f2e770113230e04bb5fe887c33b725ac273dcac912a3825ab6b9c821ce92ff32
-SIZE (gnome/linuxmint-cinnamon-settings-daemon-4.8.5_GH0.tar.gz) = 662123
+TIMESTAMP = 1660020382
+SHA256 (gnome/linuxmint-cinnamon-settings-daemon-5.4.4_GH0.tar.gz) = 65397117ad19419a6bdff38b10231148aca59d57284c6a79f517332eb70debc5
+SIZE (gnome/linuxmint-cinnamon-settings-daemon-5.4.4_GH0.tar.gz) = 573207
diff --git a/sysutils/cinnamon-settings-daemon/files/patch-plugins_xrandr_csd-xrandr-manager.c b/sysutils/cinnamon-settings-daemon/files/patch-plugins_xrandr_csd-xrandr-manager.c
deleted file mode 100644
index 38dbe7e15fb9..000000000000
--- a/sysutils/cinnamon-settings-daemon/files/patch-plugins_xrandr_csd-xrandr-manager.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- plugins/xrandr/csd-xrandr-manager.c.orig	2018-12-29 18:51:26.289097000 +0100
-+++ plugins/xrandr/csd-xrandr-manager.c	2018-12-29 18:54:43.819478000 +0100
-@@ -149,6 +149,8 @@
- static void handle_rotate_windows (CsdXrandrManager *mgr, GnomeRRRotation rotation, guint32 timestamp);
- static void rotate_touchscreens (CsdXrandrManager *mgr, GnomeRRRotation rotation);
- 
-+void register_manager_dbus (CsdXrandrManager *manager);
-+
- G_DEFINE_TYPE (CsdXrandrManager, csd_xrandr_manager, G_TYPE_OBJECT)
- 
- static gpointer manager_object = NULL;
diff --git a/sysutils/cinnamon-settings-daemon/pkg-plist b/sysutils/cinnamon-settings-daemon/pkg-plist
index 9c14818e0b55..07ea20b74caf 100644
--- a/sysutils/cinnamon-settings-daemon/pkg-plist
+++ b/sysutils/cinnamon-settings-daemon/pkg-plist
@@ -1,113 +1,78 @@
-bin/csd-a11y-keyboard
 bin/csd-a11y-settings
 bin/csd-automount
 bin/csd-background
 bin/csd-backlight-helper
 bin/csd-clipboard
 bin/csd-color
-bin/csd-cursor
 bin/csd-datetime-mechanism
 bin/csd-housekeeping
 bin/csd-input-helper
 bin/csd-keyboard
-%%WACOM%%bin/csd-list-wacom
-bin/csd-locate-pointer
 bin/csd-media-keys
-bin/csd-mouse
-bin/csd-orientation
 bin/csd-power
 %%CUPS%%bin/csd-print-notifications
 %%CUPS%%bin/csd-printer
 bin/csd-screensaver-proxy
 %%SMARTCARD%%bin/csd-smartcard
-bin/csd-sound
 %%WACOM%%bin/csd-wacom
-%%WACOM%%bin/csd-wacom-led-helper
-%%WACOM%%bin/csd-wacom-osd
-bin/csd-xrandr
 bin/csd-xsettings
-etc/xdg/autostart/cinnamon-settings-daemon-a11y-keyboard.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-a11y-settings.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-automount.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-background.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-clipboard.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-color.desktop
-etc/xdg/autostart/cinnamon-settings-daemon-cursor.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-housekeeping.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-keyboard.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-media-keys.desktop
-etc/xdg/autostart/cinnamon-settings-daemon-mouse.desktop
-etc/xdg/autostart/cinnamon-settings-daemon-orientation.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-power.desktop
 %%CUPS%%etc/xdg/autostart/cinnamon-settings-daemon-print-notifications.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-screensaver-proxy.desktop
 %%SMARTCARD%%etc/xdg/autostart/cinnamon-settings-daemon-smartcard.desktop
-etc/xdg/autostart/cinnamon-settings-daemon-sound.desktop
 %%WACOM%%etc/xdg/autostart/cinnamon-settings-daemon-wacom.desktop
-etc/xdg/autostart/cinnamon-settings-daemon-xrandr.desktop
 etc/xdg/autostart/cinnamon-settings-daemon-xsettings.desktop
 include/cinnamon-settings-daemon-3.0/cinnamon-settings-daemon/csd-enums.h
 lib/cinnamon-settings-daemon-3.0/libcsd.so
-lib/cinnamon-settings-daemon/csd-a11y-keyboard
 lib/cinnamon-settings-daemon/csd-a11y-settings
 lib/cinnamon-settings-daemon/csd-automount
 lib/cinnamon-settings-daemon/csd-background
 lib/cinnamon-settings-daemon/csd-backlight-helper
 lib/cinnamon-settings-daemon/csd-clipboard
 lib/cinnamon-settings-daemon/csd-color
-lib/cinnamon-settings-daemon/csd-cursor
 lib/cinnamon-settings-daemon/csd-datetime-mechanism
 lib/cinnamon-settings-daemon/csd-housekeeping
 lib/cinnamon-settings-daemon/csd-input-helper
 lib/cinnamon-settings-daemon/csd-keyboard
-%%WACOM%%lib/cinnamon-settings-daemon/csd-list-wacom
-lib/cinnamon-settings-daemon/csd-locate-pointer
 lib/cinnamon-settings-daemon/csd-media-keys
-lib/cinnamon-settings-daemon/csd-mouse
-lib/cinnamon-settings-daemon/csd-orientation
 lib/cinnamon-settings-daemon/csd-power
 %%CUPS%%lib/cinnamon-settings-daemon/csd-print-notifications
 %%CUPS%%lib/cinnamon-settings-daemon/csd-printer
 lib/cinnamon-settings-daemon/csd-screensaver-proxy
 %%SMARTCARD%%lib/cinnamon-settings-daemon/csd-smartcard
-lib/cinnamon-settings-daemon/csd-sound
 %%WACOM%%lib/cinnamon-settings-daemon/csd-wacom
-%%WACOM%%lib/cinnamon-settings-daemon/csd-wacom-led-helper
-%%WACOM%%lib/cinnamon-settings-daemon/csd-wacom-osd
-lib/cinnamon-settings-daemon/csd-xrandr
 lib/cinnamon-settings-daemon/csd-xsettings
 libdata/pkgconfig/cinnamon-settings-daemon.pc
-libexec/csd-a11y-keyboard
 libexec/csd-a11y-settings
 libexec/csd-automount
 libexec/csd-background
 libexec/csd-backlight-helper
 libexec/csd-clipboard
 libexec/csd-color
-libexec/csd-cursor
 libexec/csd-datetime-mechanism
 libexec/csd-housekeeping
 libexec/csd-input-helper
 libexec/csd-keyboard
-%%WACOM%%libexec/csd-list-wacom
-libexec/csd-locate-pointer
 libexec/csd-media-keys
-libexec/csd-mouse
-libexec/csd-orientation
 libexec/csd-power
 %%CUPS%%libexec/csd-print-notifications
 %%CUPS%%libexec/csd-printer
 libexec/csd-screensaver-proxy
 %%SMARTCARD%%libexec/csd-smartcard
-libexec/csd-sound
 %%WACOM%%libexec/csd-wacom
 %%WACOM%%libexec/csd-wacom-led-helper
-%%WACOM%%libexec/csd-wacom-osd
-libexec/csd-xrandr
+%%WACOM%%libexec/csd-wacom-oled-helper
 libexec/csd-xsettings
 share/applications/csd-automount.desktop
 %%DATADIR%%-3.0/input-device-example.sh
-%%DATADIR%%/csd-a11y-preferences-dialog.ui
 %%DATADIR%%/icons/hicolor/64x64/devices/kbd-capslock-off.png
 %%DATADIR%%/icons/hicolor/64x64/devices/kbd-capslock-on.png
 %%DATADIR%%/icons/hicolor/64x64/devices/kbd-numlock-off.png
diff --git a/x11-fm/nemo/Makefile b/x11-fm/nemo/Makefile
index 54e8b71ba58c..78db65714a28 100644
--- a/x11-fm/nemo/Makefile
+++ b/x11-fm/nemo/Makefile
@@ -1,12 +1,11 @@
 PORTNAME=	nemo
-PORTVERSION=	4.8.3
-PORTREVISION=	3
+PORTVERSION=	5.4.2
 CATEGORIES=	x11-fm gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	File manager for the Cinnamon desktop
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/nemo
 
 LICENSE=	GPLv2 LGPL20
 LICENSE_COMB=	multi
@@ -16,22 +15,22 @@ LICENSE_FILE_LGPL20=	${WRKSRC}/COPYING.LIB
 BUILD_DEPENDS=	gnome-icon-theme>=0:misc/gnome-icon-theme \
 		gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas
 LIB_DEPENDS=	libcinnamon-desktop.so:x11/cinnamon-desktop \
-		libnotify.so:devel/libnotify \
 		libxapp.so:x11/xapp
 RUN_DEPENDS=	gnome-icon-theme>=0:misc/gnome-icon-theme \
 		gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas \
 		gvfs>0:devel/gvfs
 
 USES=		compiler:c11 desktop-file-utils gettext gnome meson pkgconfig \
-		python:3.5+ shared-mime-info shebangfix xorg
+		python shared-mime-info shebangfix xorg
 
-SHEBANG_FILES=	generate_additional_file makepot
+SHEBANG_FILES=	generate_additional_file makepot search-helpers/nemo-xls-to-txt
 SHEBANG_GLOB=	*.py
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
 
-USE_GNOME=	cairo gdkpixbuf2 gtk30 intlhack introspection libxml2 pango pygobject3
+USE_GNOME=	cairo gdkpixbuf2 gtk30 intlhack introspection libgsf \
+		libxml2 pango pygobject3
 
 USE_XORG=	x11
 
@@ -59,8 +58,4 @@ EXIF_MESON_TRUE=	exif
 TRACKER_LIB_DEPENDS=	libtracker-sparql-2.0.so:sysutils/tracker
 TRACKER_MESON_TRUE=	tracker
 
-post-patch:
-	# malloc.h is deprecated
-	@${REINPLACE_CMD} -e "/malloc.h/d" ${WRKSRC}/meson.build
-
 .include <bsd.port.mk>
diff --git a/x11-fm/nemo/distinfo b/x11-fm/nemo/distinfo
index 603df1ac0d70..ceb098b99dd0 100644
--- a/x11-fm/nemo/distinfo
+++ b/x11-fm/nemo/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1610468339
-SHA256 (gnome/linuxmint-nemo-4.8.3_GH0.tar.gz) = 791d42c236e9002913c74d32d60683e7973958db8efd7e24eba94394f042c788
-SIZE (gnome/linuxmint-nemo-4.8.3_GH0.tar.gz) = 1464636
+TIMESTAMP = 1660059700
+SHA256 (gnome/linuxmint-nemo-5.4.2_GH0.tar.gz) = 7e92210804ab1b2f4cd1799afb54fc60ff81281901af36bbe99790b3fd5f40c1
+SIZE (gnome/linuxmint-nemo-5.4.2_GH0.tar.gz) = 1495290
diff --git a/x11-fm/nemo/pkg-plist b/x11-fm/nemo/pkg-plist
index cc92b89e6f4d..8e61fa02da17 100644
--- a/x11-fm/nemo/pkg-plist
+++ b/x11-fm/nemo/pkg-plist
@@ -2,7 +2,11 @@ bin/nemo
 bin/nemo-autorun-software
 bin/nemo-connect-server
 bin/nemo-desktop
+bin/nemo-epub2text
+bin/nemo-mso-to-txt
 bin/nemo-open-with
+bin/nemo-ppt-to-txt
+bin/nemo-xls-to-txt
 include/nemo/libnemo-extension/nemo-column-provider.h
 include/nemo/libnemo-extension/nemo-column.h
 include/nemo/libnemo-extension/nemo-desktop-preferences.h
@@ -25,6 +29,7 @@ libdata/pkgconfig/libnemo-extension.pc
 libexec/nemo-convert-metadata
 libexec/nemo-extensions-list
 man/man1/nemo-connect-server.1.gz
+man/man1/nemo-desktop.1.gz
 man/man1/nemo.1.gz
 share/applications/nemo-autorun-software.desktop
 share/applications/nemo-autostart.desktop
@@ -58,7 +63,11 @@ share/gir-1.0/Nemo-3.0.gir
 %%PORTDOCS%%share/gtk-doc/html/libnemo-extension/up-insensitive.png
 %%PORTDOCS%%share/gtk-doc/html/libnemo-extension/up.png
 share/gtksourceview-2.0/language-specs/nemo_action.lang
+share/gtksourceview-2.0/language-specs/nemo_search_helper.lang
 share/gtksourceview-3.0/language-specs/nemo_action.lang
+share/gtksourceview-3.0/language-specs/nemo_search_helper.lang
+share/gtksourceview-4/language-specs/nemo_action.lang
+share/gtksourceview-4/language-specs/nemo_search_helper.lang
 share/icons/hicolor/16x16/actions/menu-bullet.png
 share/icons/hicolor/16x16/actions/menu-none.png
 share/icons/hicolor/16x16/actions/menu-sort-down-free.png
@@ -92,6 +101,7 @@ share/icons/hicolor/scalable/actions/nemo-auto-arrange-symbolic.svg
 share/icons/hicolor/scalable/actions/nemo-desktop-scale-symbolic.svg
 share/icons/hicolor/scalable/actions/nemo-horizontal-layout-symbolic.svg
 share/icons/hicolor/scalable/actions/nemo-horizontal-layout-wide-symbolic.svg
+share/icons/hicolor/scalable/actions/nemo-recursive-search-symbolic.svg
 share/icons/hicolor/scalable/actions/nemo-vertical-layout-symbolic.svg
 share/icons/hicolor/scalable/actions/nemo-vertical-layout-wide-symbolic.svg
 share/icons/hicolor/scalable/actions/sidebar-hide-symbolic.svg
@@ -117,4 +127,16 @@ share/mime/packages/nemo.xml
 %%DATADIR%%/icons/hicolor/24x24/emblems/emblem-note.png
 %%DATADIR%%/icons/hicolor/48x48/emblems/emblem-note.png
 %%DATADIR%%/script-info.md
+%%DATADIR%%/search-helpers/exif.nemo_search_helper
+%%DATADIR%%/search-helpers/epub2text.nemo_search_helper
+%%DATADIR%%/search-helpers/id3.nemo_search_helper
+%%DATADIR%%/search-helpers/libreoffice.nemo_search_helper
+%%DATADIR%%/search-helpers/mso-doc.nemo_search_helper
+%%DATADIR%%/search-helpers/mso-ppt.nemo_search_helper
+%%DATADIR%%/search-helpers/mso-xls.nemo_search_helper
+%%DATADIR%%/search-helpers/mso.nemo_search_helper
+%%DATADIR%%/search-helpers/pdf2txt.nemo_search_helper
+%%DATADIR%%/search-helpers/pdftotext.nemo_search_helper
+%%DATADIR%%/search-helpers/ps2ascii.nemo_search_helper
+%%DATADIR%%/search-helpers/untex.nemo_search_helper
 share/polkit-1/actions/org.nemo.root.policy
diff --git a/x11-wm/muffin/Makefile b/x11-wm/muffin/Makefile
index 1436b9a7274f..81ccfb5478a5 100644
--- a/x11-wm/muffin/Makefile
+++ b/x11-wm/muffin/Makefile
@@ -1,71 +1,57 @@
 PORTNAME=	muffin
-PORTVERSION=	4.8.0
-PORTREVISION=	1
+PORTVERSION=	5.4.5
 CATEGORIES=	x11-wm gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Compositing window manager forked from Mutter for use with Cinnamon
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/muffin
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	zenity>=3.0.0:x11/zenity \
-		gnome-autogen.sh:devel/gnome-common \
-		gsettings-desktop-schemas>=3.4.0:devel/gsettings-desktop-schemas \
-		gtkdocize:textproc/gtk-doc \
-		xkeyboard-config>0:x11/xkeyboard-config
-LIB_DEPENDS=	libcanberra.so:audio/libcanberra \
-		libcanberra-gtk3.so:audio/libcanberra-gtk3 \
-		libcinnamon-desktop.so:x11/cinnamon-desktop \
-		libdrm.so:graphics/libdrm \
-		libfontconfig.so:x11-fonts/fontconfig \
-		libfreetype.so:print/freetype2 \
+BUILD_DEPENDS=	${LOCALBASE}/libdata/pkgconfig/xkeyboard-config.pc:x11/xkeyboard-config \
+		${LOCALBASE}/include/EGL/eglmesaext.h:graphics/mesa-dri \
+		${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+LIB_DEPENDS=	libgraphene-1.0.so:graphics/graphene \
+		libfribidi.so:converters/fribidi \
 		libjson-glib-1.0.so:devel/json-glib \
-		libstartup-notification-1.so:x11/startup-notification \
-		libwacom.so:x11/libwacom \
+		libcinnamon-desktop.so:x11/cinnamon-desktop \
 		libxkbcommon.so:x11/libxkbcommon \
-		libharfbuzz.so:print/harfbuzz
-RUN_DEPENDS=	zenity>=3.0.0:x11/zenity \
-		xkeyboard-config>0:x11/xkeyboard-config
+		libcanberra.so:audio/libcanberra \
+		libdbus-1.so:devel/dbus \
+		libstartup-notification-1.so:x11/startup-notification \
+		libpipewire-0.3.so:multimedia/pipewire \
+		libfontconfig.so:x11-fonts/fontconfig
+RUN_DEPENDS=	xkeyboard-config>0:x11/xkeyboard-config
 
-USES=		autoreconf:build compiler:c11 gettext-tools gl gmake gnome \
-		libtool localbase pathfix pkgconfig xorg
+USES=		compiler:c11 gettext-tools gl gnome localbase meson pkgconfig xorg
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
 
-USE_GNOME=	cairo dconf gdkpixbuf2 gnomeprefix glib20 gtk30 intltool \
-		introspection
-
-USE_XORG=	ice sm x11 xcb xcomposite xcursor xdamage xext xfixes xi xinerama \
+USE_GNOME=	atk cairo gdkpixbuf2 glib20 gtk30 introspection pango
+USE_XORG=	ice sm x11 xau xcb xcomposite xcursor xdamage xext xfixes xi xinerama \
 		xkbfile xrandr xrender xtst
-
-USE_GL=		egl gbm gl
+USE_GL=		egl gl glesv2
 
 USE_LDCONFIG=	yes
-
-GNU_CONFIGURE=	yes
-CONFIGURE_ARGS=	--enable-maintainer-flags=no
-INSTALL_TARGET=	install-strip
+MESON_ARGS=	-Dcore_tests=false
 
 GLIB_SCHEMAS=	org.cinnamon.muffin.gschema.xml
 
-OPTIONS_DEFINE=		WAYLAND
-OPTIONS_DEFAULT=	WAYLAND
-OPTIONS_SUB=		yes
+OPTIONS_DEFINE=	TEST UDEV WACOM
+OPTIONS_DEFAULT=	WACOM
 
-WAYLAND_BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
-WAYLAND_LIB_DEPENDS=	libinput.so:x11/libinput \
-			libudev.so:devel/libudev-devd \
-			libwayland-server.so:graphics/wayland
-WAYLAND_CONFIGURE_ENABLE=	wayland-egl-server
+TEST_MESON_TRUE=	cogl_tests clutter_tests
 
-post-patch:
-	@${REINPLACE_CMD} 's/--warn-error//' ${WRKSRC}/src/Makefile.am
+UDEV_DESC=	Enable udev support when using the X11 backend (EXPERIMENTAL)
+UDEV_LIB_DEPENDS=	libgudev-1.0.so:devel/libgudev \
+			libudev.so:devel/libudev-devd
+UDEV_MESON_TRUE=	udev
 
-pre-configure:
-	@cd ${WRKSRC} && ${SETENV} NOCONFIGURE=yes ${SH} autogen.sh
+WACOM_DESC=	Tablet support with libwacom
+WACOM_LIB_DEPENDS=	libwacom.so:x11/libwacom
+WACOM_MESON_TRUE=	libwacom
 
 .include <bsd.port.mk>
diff --git a/x11-wm/muffin/distinfo b/x11-wm/muffin/distinfo
index c55ccdb8e541..cdab002983cf 100644
--- a/x11-wm/muffin/distinfo
+++ b/x11-wm/muffin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1606817463
-SHA256 (gnome/linuxmint-muffin-4.8.0_GH0.tar.gz) = a4f1cb9ed80b7ea1e51d30b97ea3ae2f196b06fc9fd56c0283e64c9ee1322c18
-SIZE (gnome/linuxmint-muffin-4.8.0_GH0.tar.gz) = 5196236
+TIMESTAMP = 1660022739
+SHA256 (gnome/linuxmint-muffin-5.4.5_GH0.tar.gz) = e02802d72c9d5d0cdd62194528c0aff80a2e6fa5f74b49191332f316516acdb0
+SIZE (gnome/linuxmint-muffin-5.4.5_GH0.tar.gz) = 4513483
diff --git a/x11-wm/muffin/files/patch-clutter_clutter_cally_cally-text.c b/x11-wm/muffin/files/patch-clutter_clutter_cally_cally-text.c
new file mode 100644
index 000000000000..85d6558ece56
--- /dev/null
+++ b/x11-wm/muffin/files/patch-clutter_clutter_cally_cally-text.c
@@ -0,0 +1,27 @@
+From 6d7ab6669583816479d69dba6a83624ff9635392 Mon Sep 17 00:00:00 2001
+From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Date: Mon, 11 Jan 2021 21:17:51 +0100
+Subject: [PATCH] clutter: Fix build with clang
+
+Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1668>
+---
+ clutter/clutter/cally/cally-text.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git clutter/clutter/cally/cally-text.c clutter/clutter/cally/cally-text.c
+index 2b34f098..b6e8c8b7 100644
+--- clutter/clutter/cally/cally-text.c
++++ clutter/clutter/cally/cally-text.c
+@@ -1866,7 +1866,7 @@ static gint
+ _cally_atk_attribute_lookup_func (gconstpointer data,
+                                   gconstpointer user_data)
+ {
+-    AtkTextAttribute attr = (AtkTextAttribute) user_data;
++    AtkTextAttribute attr = (AtkTextAttribute) GPOINTER_TO_INT (user_data);
+     AtkAttribute *at = (AtkAttribute *) data;
+     if (!g_strcmp0 (at->name, atk_text_attribute_get_name (attr)))
+         return 0;
+-- 
+2.37.0
+
diff --git a/x11-wm/muffin/files/patch-uint b/x11-wm/muffin/files/patch-uint
new file mode 100644
index 000000000000..e5954537596e
--- /dev/null
+++ b/x11-wm/muffin/files/patch-uint
@@ -0,0 +1,67 @@
+diff --git src/backends/native/meta-cursor-renderer-native.c src/backends/native/meta-cursor-renderer-native.c
+index 578a9a0a..76254485 100644
+--- src/backends/native/meta-cursor-renderer-native.c
++++ src/backends/native/meta-cursor-renderer-native.c
+@@ -1165,8 +1165,8 @@ load_cursor_sprite_gbm_buffer_for_gpu (MetaCursorRendererNative *native,
+                                        MetaGpuKms               *gpu_kms,
+                                        MetaCursorSprite         *cursor_sprite,
+                                        uint8_t                  *pixels,
+-                                       uint                      width,
+-                                       uint                      height,
++                                       unsigned int              width,
++                                       unsigned int              height,
+                                        int                       rowstride,
+                                        uint32_t                  gbm_format)
+ {
+diff --git src/backends/x11/meta-seat-x11.c src/backends/x11/meta-seat-x11.c
+index ff028bfa..9e7421e1 100644
+--- src/backends/x11/meta-seat-x11.c
++++ src/backends/x11/meta-seat-x11.c
+@@ -783,7 +783,7 @@ relate_slaves (gpointer key,
+   _clutter_input_device_add_slave (master, slave);
+ }
+ 
+-static uint
++static unsigned int
+ device_get_tool_serial (ClutterInputDevice *device)
+ {
+   gulong nitems, bytes_after;
+diff --git src/core/keybindings-private.h src/core/keybindings-private.h
+index 1d42a8c5..54f29061 100644
+--- src/core/keybindings-private.h
++++ src/core/keybindings-private.h
+@@ -142,7 +142,7 @@ gboolean meta_keybindings_process_event     (MetaDisplay        *display,
+ int      meta_keybindings_get_mouse_zoom_modifiers (MetaDisplay *display);
+ ClutterModifierType meta_display_get_window_grab_modifiers (MetaDisplay *display);
+ 
+-uint     meta_keybindings_get_ignored_modifier_mask (MetaDisplay *display);
++unsigned int     meta_keybindings_get_ignored_modifier_mask (MetaDisplay *display);
+ 
+ gboolean meta_prefs_add_keybinding          (const char           *name,
+                                              GSettings            *settings,
+diff --git src/core/keybindings.c src/core/keybindings.c
+index ab3ec963..55c8284c 100644
+--- src/core/keybindings.c
++++ src/core/keybindings.c
+@@ -3885,7 +3885,7 @@ meta_keybindings_get_mouse_zoom_modifiers (MetaDisplay *display)
+     return keys->mouse_zoom_modifiers;
+ }
+ 
+-uint
++unsigned int
+ meta_keybindings_get_ignored_modifier_mask (MetaDisplay *display)
+ {
+     MetaKeyBindingManager *keys = &display->key_binding_manager;
+diff --git src/core/startup-notification.c src/core/startup-notification.c
+index 99c0d9d0..b183674a 100644
+--- src/core/startup-notification.c
++++ src/core/startup-notification.c
+@@ -100,7 +100,7 @@ typedef struct {
+   char *id;
+   uint64_t timestamp;
+   int workspace;
+-  uint completed : 1;
++  unsigned int completed : 1;
+ } MetaStartupSequencePrivate;
+ 
+ G_DEFINE_TYPE (MetaStartupNotification,
diff --git a/x11-wm/muffin/pkg-plist b/x11-wm/muffin/pkg-plist
index 3c2bfc94c17a..89772a0945dd 100644
--- a/x11-wm/muffin/pkg-plist
+++ b/x11-wm/muffin/pkg-plist
@@ -1,150 +1,116 @@
 bin/muffin
-bin/muffin-message
-bin/muffin-theme-viewer
-bin/muffin-window-demo
-include/muffin/clutter-0/cally/cally-actor.h
-include/muffin/clutter-0/cally/cally-clone.h
-include/muffin/clutter-0/cally/cally-factory.h
-include/muffin/clutter-0/cally/cally-group.h
-include/muffin/clutter-0/cally/cally-main.h
-include/muffin/clutter-0/cally/cally-rectangle.h
-include/muffin/clutter-0/cally/cally-root.h
-include/muffin/clutter-0/cally/cally-stage.h
-include/muffin/clutter-0/cally/cally-text.h
-include/muffin/clutter-0/cally/cally-texture.h
-include/muffin/clutter-0/cally/cally-util.h
-include/muffin/clutter-0/cally/cally.h
-include/muffin/clutter-0/clutter/clutter-action.h
-include/muffin/clutter-0/clutter/clutter-actor-meta.h
-include/muffin/clutter-0/clutter/clutter-actor.h
-include/muffin/clutter-0/clutter/clutter-align-constraint.h
-include/muffin/clutter-0/clutter/clutter-animatable.h
-include/muffin/clutter-0/clutter/clutter-autocleanups.h
-include/muffin/clutter-0/clutter/clutter-backend.h
-include/muffin/clutter-0/clutter/clutter-bin-layout.h
-include/muffin/clutter-0/clutter/clutter-bind-constraint.h
-include/muffin/clutter-0/clutter/clutter-binding-pool.h
-include/muffin/clutter-0/clutter/clutter-blur-effect.h
-include/muffin/clutter-0/clutter/clutter-box-layout.h
-include/muffin/clutter-0/clutter/clutter-brightness-contrast-effect.h
-include/muffin/clutter-0/clutter/clutter-cairo.h
-include/muffin/clutter-0/clutter/clutter-canvas.h
-include/muffin/clutter-0/clutter/clutter-child-meta.h
-include/muffin/clutter-0/clutter/clutter-click-action.h
-include/muffin/clutter-0/clutter/clutter-clone.h
-include/muffin/clutter-0/clutter/clutter-color-static.h
-include/muffin/clutter-0/clutter/clutter-color.h
-include/muffin/clutter-0/clutter/clutter-colorize-effect.h
-include/muffin/clutter-0/clutter/clutter-config.h
-include/muffin/clutter-0/clutter/clutter-constraint.h
-include/muffin/clutter-0/clutter/clutter-container.h
-include/muffin/clutter-0/clutter/clutter-content.h
-include/muffin/clutter-0/clutter/clutter-deform-effect.h
-include/muffin/clutter-0/clutter/clutter-deprecated.h
-include/muffin/clutter-0/clutter/clutter-desaturate-effect.h
-include/muffin/clutter-0/clutter/clutter-device-manager.h
-include/muffin/clutter-0/clutter/clutter-drag-action.h
-include/muffin/clutter-0/clutter/clutter-drop-action.h
-include/muffin/clutter-0/clutter/clutter-effect.h
-include/muffin/clutter-0/clutter/clutter-enum-types.h
-include/muffin/clutter-0/clutter/clutter-enums.h
-include/muffin/clutter-0/clutter/clutter-event.h
-include/muffin/clutter-0/clutter/clutter-feature.h
-include/muffin/clutter-0/clutter/clutter-fixed-layout.h
-include/muffin/clutter-0/clutter/clutter-flow-layout.h
-include/muffin/clutter-0/clutter/clutter-gesture-action.h
-include/muffin/clutter-0/clutter/clutter-grid-layout.h
-include/muffin/clutter-0/clutter/clutter-group.h
-include/muffin/clutter-0/clutter/clutter-image.h
-include/muffin/clutter-0/clutter/clutter-input-device-tool.h
-include/muffin/clutter-0/clutter/clutter-input-device.h
-include/muffin/clutter-0/clutter/clutter-input-focus.h
-include/muffin/clutter-0/clutter/clutter-input-method.h
-include/muffin/clutter-0/clutter/clutter-interval.h
-include/muffin/clutter-0/clutter/clutter-keyframe-transition.h
-include/muffin/clutter-0/clutter/clutter-keysyms.h
-include/muffin/clutter-0/clutter/clutter-layout-manager.h
-include/muffin/clutter-0/clutter/clutter-layout-meta.h
-include/muffin/clutter-0/clutter/clutter-macros.h
-include/muffin/clutter-0/clutter/clutter-main.h
-include/muffin/clutter-0/clutter/clutter-marshal.h
-include/muffin/clutter-0/clutter/clutter-muffin.h
-include/muffin/clutter-0/clutter/clutter-offscreen-effect.h
-include/muffin/clutter-0/clutter/clutter-page-turn-effect.h
-include/muffin/clutter-0/clutter/clutter-paint-node.h
-include/muffin/clutter-0/clutter/clutter-paint-nodes.h
-include/muffin/clutter-0/clutter/clutter-pan-action.h
-include/muffin/clutter-0/clutter/clutter-path-constraint.h
-include/muffin/clutter-0/clutter/clutter-path.h
-include/muffin/clutter-0/clutter/clutter-property-transition.h
-include/muffin/clutter-0/clutter/clutter-rotate-action.h
-include/muffin/clutter-0/clutter/clutter-script.h
-include/muffin/clutter-0/clutter/clutter-scriptable.h
-include/muffin/clutter-0/clutter/clutter-scroll-actor.h
-include/muffin/clutter-0/clutter/clutter-settings.h
-include/muffin/clutter-0/clutter/clutter-shader-effect.h
-include/muffin/clutter-0/clutter/clutter-shader-types.h
-include/muffin/clutter-0/clutter/clutter-snap-constraint.h
-include/muffin/clutter-0/clutter/clutter-stage-manager.h
-include/muffin/clutter-0/clutter/clutter-stage.h
-include/muffin/clutter-0/clutter/clutter-swipe-action.h
-include/muffin/clutter-0/clutter/clutter-tap-action.h
-include/muffin/clutter-0/clutter/clutter-test-utils.h
-include/muffin/clutter-0/clutter/clutter-text-buffer.h
-include/muffin/clutter-0/clutter/clutter-text.h
-include/muffin/clutter-0/clutter/clutter-texture.h
-include/muffin/clutter-0/clutter/clutter-timeline.h
-include/muffin/clutter-0/clutter/clutter-transition-group.h
-include/muffin/clutter-0/clutter/clutter-transition.h
-include/muffin/clutter-0/clutter/clutter-types.h
-include/muffin/clutter-0/clutter/clutter-units.h
-include/muffin/clutter-0/clutter/clutter-version.h
-include/muffin/clutter-0/clutter/clutter-virtual-input-device.h
-include/muffin/clutter-0/clutter/clutter-zoom-action.h
-include/muffin/clutter-0/clutter/clutter.h
-include/muffin/clutter-0/clutter/deprecated/clutter-actor.h
-include/muffin/clutter-0/clutter/deprecated/clutter-alpha.h
-include/muffin/clutter-0/clutter/deprecated/clutter-animatable.h
-include/muffin/clutter-0/clutter/deprecated/clutter-animation.h
-include/muffin/clutter-0/clutter/deprecated/clutter-animator.h
-include/muffin/clutter-0/clutter/deprecated/clutter-backend.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-depth.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-ellipse.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-opacity.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-path.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-rotate.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour-scale.h
-include/muffin/clutter-0/clutter/deprecated/clutter-behaviour.h
-include/muffin/clutter-0/clutter/deprecated/clutter-bin-layout.h
-include/muffin/clutter-0/clutter/deprecated/clutter-box.h
-include/muffin/clutter-0/clutter/deprecated/clutter-cairo-texture.h
-include/muffin/clutter-0/clutter/deprecated/clutter-container.h
-include/muffin/clutter-0/clutter/deprecated/clutter-frame-source.h
-include/muffin/clutter-0/clutter/deprecated/clutter-group.h
-include/muffin/clutter-0/clutter/deprecated/clutter-input-device.h
-include/muffin/clutter-0/clutter/deprecated/clutter-keysyms.h
-include/muffin/clutter-0/clutter/deprecated/clutter-list-model.h
-include/muffin/clutter-0/clutter/deprecated/clutter-main.h
-include/muffin/clutter-0/clutter/deprecated/clutter-media.h
-include/muffin/clutter-0/clutter/deprecated/clutter-model.h
-include/muffin/clutter-0/clutter/deprecated/clutter-rectangle.h
-include/muffin/clutter-0/clutter/deprecated/clutter-score.h
-include/muffin/clutter-0/clutter/deprecated/clutter-shader.h
-include/muffin/clutter-0/clutter/deprecated/clutter-stage-manager.h
-include/muffin/clutter-0/clutter/deprecated/clutter-stage.h
-include/muffin/clutter-0/clutter/deprecated/clutter-state.h
-include/muffin/clutter-0/clutter/deprecated/clutter-table-layout.h
-include/muffin/clutter-0/clutter/deprecated/clutter-texture.h
-include/muffin/clutter-0/clutter/deprecated/clutter-timeline.h
-include/muffin/clutter-0/clutter/deprecated/clutter-timeout-pool.h
-include/muffin/clutter-0/clutter/deprecated/clutter-util.h
-%%WAYLAND%%include/muffin/clutter-0/clutter/egl/clutter-egl-headers.h
-%%WAYLAND%%include/muffin/clutter-0/clutter/egl/clutter-egl.h
-%%WAYLAND%%include/muffin/clutter-0/clutter/evdev/clutter-evdev.h
-%%WAYLAND%%include/muffin/clutter-0/clutter/wayland/clutter-wayland-compositor.h
-%%WAYLAND%%include/muffin/clutter-0/clutter/wayland/clutter-wayland-surface.h
-include/muffin/clutter-0/clutter/x11/clutter-x11-texture-pixmap.h
-include/muffin/clutter-0/clutter/x11/clutter-x11.h
+include/muffin/clutter/cally/cally-actor.h
+include/muffin/clutter/cally/cally-clone.h
+include/muffin/clutter/cally/cally-factory.h
+include/muffin/clutter/cally/cally-group.h
+include/muffin/clutter/cally/cally-main.h
+include/muffin/clutter/cally/cally-rectangle.h
+include/muffin/clutter/cally/cally-root.h
+include/muffin/clutter/cally/cally-stage.h
+include/muffin/clutter/cally/cally-text.h
+include/muffin/clutter/cally/cally-util.h
+include/muffin/clutter/cally/cally.h
+include/muffin/clutter/clutter/clutter-action.h
+include/muffin/clutter/clutter/clutter-actor-meta.h
+include/muffin/clutter/clutter/clutter-actor.h
+include/muffin/clutter/clutter/clutter-align-constraint.h
+include/muffin/clutter/clutter/clutter-animatable.h
+include/muffin/clutter/clutter/clutter-autocleanups.h
+include/muffin/clutter/clutter/clutter-backend.h
+include/muffin/clutter/clutter/clutter-bin-layout.h
+include/muffin/clutter/clutter/clutter-bind-constraint.h
+include/muffin/clutter/clutter/clutter-binding-pool.h
+include/muffin/clutter/clutter/clutter-blur-effect.h
+include/muffin/clutter/clutter/clutter-box-layout.h
+include/muffin/clutter/clutter/clutter-brightness-contrast-effect.h
+include/muffin/clutter/clutter/clutter-cairo.h
+include/muffin/clutter/clutter/clutter-canvas.h
+include/muffin/clutter/clutter/clutter-child-meta.h
+include/muffin/clutter/clutter/clutter-click-action.h
+include/muffin/clutter/clutter/clutter-clone.h
+include/muffin/clutter/clutter/clutter-color-static.h
+include/muffin/clutter/clutter/clutter-color.h
+include/muffin/clutter/clutter/clutter-colorize-effect.h
+include/muffin/clutter/clutter/clutter-config.h
+include/muffin/clutter/clutter/clutter-constraint.h
+include/muffin/clutter/clutter/clutter-container.h
+include/muffin/clutter/clutter/clutter-content.h
+include/muffin/clutter/clutter/clutter-deform-effect.h
+include/muffin/clutter/clutter/clutter-deprecated.h
+include/muffin/clutter/clutter/clutter-desaturate-effect.h
+include/muffin/clutter/clutter/clutter-drag-action.h
+include/muffin/clutter/clutter/clutter-drop-action.h
+include/muffin/clutter/clutter/clutter-effect.h
+include/muffin/clutter/clutter/clutter-enum-types.h
+include/muffin/clutter/clutter/clutter-enums.h
+include/muffin/clutter/clutter/clutter-event.h
+include/muffin/clutter/clutter/clutter-feature.h
+include/muffin/clutter/clutter/clutter-fixed-layout.h
+include/muffin/clutter/clutter/clutter-flow-layout.h
+include/muffin/clutter/clutter/clutter-gesture-action.h
+include/muffin/clutter/clutter/clutter-grid-layout.h
+include/muffin/clutter/clutter/clutter-group.h
+include/muffin/clutter/clutter/clutter-image.h
+include/muffin/clutter/clutter/clutter-input-device-tool.h
+include/muffin/clutter/clutter/clutter-input-device.h
+include/muffin/clutter/clutter/clutter-input-focus.h
+include/muffin/clutter/clutter/clutter-input-method.h
+include/muffin/clutter/clutter/clutter-interval.h
+include/muffin/clutter/clutter/clutter-keyframe-transition.h
+include/muffin/clutter/clutter/clutter-keymap.h
+include/muffin/clutter/clutter/clutter-keysyms.h
+include/muffin/clutter/clutter/clutter-layout-manager.h
+include/muffin/clutter/clutter/clutter-layout-meta.h
+include/muffin/clutter/clutter/clutter-macros.h
+include/muffin/clutter/clutter/clutter-main.h
+include/muffin/clutter/clutter/clutter-marshal.h
+include/muffin/clutter/clutter/clutter-mutter.h
+include/muffin/clutter/clutter/clutter-offscreen-effect.h
+include/muffin/clutter/clutter/clutter-page-turn-effect.h
+include/muffin/clutter/clutter/clutter-paint-context.h
+include/muffin/clutter/clutter/clutter-paint-node.h
+include/muffin/clutter/clutter/clutter-paint-nodes.h
+include/muffin/clutter/clutter/clutter-pan-action.h
+include/muffin/clutter/clutter/clutter-path-constraint.h
+include/muffin/clutter/clutter/clutter-path.h
+include/muffin/clutter/clutter/clutter-pick-context.h
+include/muffin/clutter/clutter/clutter-property-transition.h
+include/muffin/clutter/clutter/clutter-rotate-action.h
+include/muffin/clutter/clutter/clutter-script.h
+include/muffin/clutter/clutter/clutter-scriptable.h
+include/muffin/clutter/clutter/clutter-scroll-actor.h
+include/muffin/clutter/clutter/clutter-seat.h
+include/muffin/clutter/clutter/clutter-settings.h
+include/muffin/clutter/clutter/clutter-shader-effect.h
+include/muffin/clutter/clutter/clutter-shader-types.h
+include/muffin/clutter/clutter/clutter-snap-constraint.h
+include/muffin/clutter/clutter/clutter-stage-manager.h
+include/muffin/clutter/clutter/clutter-stage-view.h
+include/muffin/clutter/clutter/clutter-stage.h
+include/muffin/clutter/clutter/clutter-swipe-action.h
+include/muffin/clutter/clutter/clutter-tap-action.h
+include/muffin/clutter/clutter/clutter-text-buffer.h
+include/muffin/clutter/clutter/clutter-text.h
+include/muffin/clutter/clutter/clutter-texture-content.h
+include/muffin/clutter/clutter/clutter-timeline.h
+include/muffin/clutter/clutter/clutter-transition-group.h
+include/muffin/clutter/clutter/clutter-transition.h
+include/muffin/clutter/clutter/clutter-types.h
+include/muffin/clutter/clutter/clutter-units.h
+include/muffin/clutter/clutter/clutter-virtual-input-device.h
+include/muffin/clutter/clutter/clutter-zoom-action.h
+include/muffin/clutter/clutter/clutter.h
+include/muffin/clutter/clutter/deprecated/clutter-actor.h
+include/muffin/clutter/clutter/deprecated/clutter-alpha.h
+include/muffin/clutter/clutter/deprecated/clutter-animation.h
+include/muffin/clutter/clutter/deprecated/clutter-box.h
+include/muffin/clutter/clutter/deprecated/clutter-container.h
+include/muffin/clutter/clutter/deprecated/clutter-group.h
+include/muffin/clutter/clutter/deprecated/clutter-rectangle.h
+include/muffin/clutter/clutter/deprecated/clutter-stage.h
+include/muffin/clutter/clutter/deprecated/clutter-state.h
+include/muffin/clutter/clutter/deprecated/clutter-timeline.h
+include/muffin/clutter/clutter/x11/clutter-x11.h
 include/muffin/cogl/cogl-pango/cogl-pango.h
 include/muffin/cogl/cogl-path/cogl-path-enum-types.h
 include/muffin/cogl/cogl-path/cogl-path-functions.h
@@ -153,105 +119,108 @@ include/muffin/cogl/cogl-path/cogl-path.h
 include/muffin/cogl/cogl/cogl-atlas-texture.h
 include/muffin/cogl/cogl/cogl-attribute-buffer.h
 include/muffin/cogl/cogl/cogl-attribute.h
-include/muffin/cogl/cogl/cogl-auto-texture.h
 include/muffin/cogl/cogl/cogl-bitmap.h
 include/muffin/cogl/cogl/cogl-buffer.h
-include/muffin/cogl/cogl/cogl-clutter.h
 include/muffin/cogl/cogl/cogl-color.h
 include/muffin/cogl/cogl/cogl-context.h
 include/muffin/cogl/cogl/cogl-defines.h
-include/muffin/cogl/cogl/cogl-deprecated.h
 include/muffin/cogl/cogl/cogl-depth-state.h
 include/muffin/cogl/cogl/cogl-display.h
+include/muffin/cogl/cogl/cogl-dma-buf-handle.h
 include/muffin/cogl/cogl/cogl-egl-defines.h
 include/muffin/cogl/cogl/cogl-egl.h
-include/muffin/cogl/cogl/cogl-error.h
-include/muffin/cogl/cogl/cogl-euler.h
 include/muffin/cogl/cogl/cogl-fence.h
 include/muffin/cogl/cogl/cogl-frame-info.h
 include/muffin/cogl/cogl/cogl-framebuffer.h
-include/muffin/cogl/cogl/cogl-gles2-types.h
-include/muffin/cogl/cogl/cogl-gles2.h
 include/muffin/cogl/cogl/cogl-glib-source.h
 include/muffin/cogl/cogl/cogl-glx.h
 include/muffin/cogl/cogl/cogl-gtype-private.h
 include/muffin/cogl/cogl/cogl-index-buffer.h
 include/muffin/cogl/cogl/cogl-indices.h
 include/muffin/cogl/cogl/cogl-macros.h
-include/muffin/cogl/cogl/cogl-material-compat.h
 include/muffin/cogl/cogl/cogl-matrix-stack.h
 include/muffin/cogl/cogl/cogl-matrix.h
 include/muffin/cogl/cogl/cogl-meta-texture.h
-include/muffin/cogl/cogl/cogl-muffin.h
 include/muffin/cogl/cogl/cogl-object.h
 include/muffin/cogl/cogl/cogl-offscreen.h
 include/muffin/cogl/cogl/cogl-onscreen-template.h
 include/muffin/cogl/cogl/cogl-onscreen.h
 include/muffin/cogl/cogl/cogl-output.h
-include/muffin/cogl/cogl/cogl-pango.h
 include/muffin/cogl/cogl/cogl-pipeline-layer-state.h
 include/muffin/cogl/cogl/cogl-pipeline-state.h
 include/muffin/cogl/cogl/cogl-pipeline.h
 include/muffin/cogl/cogl/cogl-pixel-buffer.h
+include/muffin/cogl/cogl/cogl-pixel-format.h
 include/muffin/cogl/cogl/cogl-poll.h
 include/muffin/cogl/cogl/cogl-primitive-texture.h
 include/muffin/cogl/cogl/cogl-primitive.h
-include/muffin/cogl/cogl/cogl-primitives.h
-include/muffin/cogl/cogl/cogl-quaternion.h
 include/muffin/cogl/cogl/cogl-renderer.h
-include/muffin/cogl/cogl/cogl-shader.h
 include/muffin/cogl/cogl/cogl-snippet.h
 include/muffin/cogl/cogl/cogl-sub-texture.h
 include/muffin/cogl/cogl/cogl-swap-chain.h
-include/muffin/cogl/cogl/cogl-texture-2d-gl.h
 include/muffin/cogl/cogl/cogl-texture-2d-sliced.h
 include/muffin/cogl/cogl/cogl-texture-2d.h
-include/muffin/cogl/cogl/cogl-texture-3d.h
 include/muffin/cogl/cogl/cogl-texture-pixmap-x11.h
-include/muffin/cogl/cogl/cogl-texture-rectangle.h
 include/muffin/cogl/cogl/cogl-texture.h
-include/muffin/cogl/cogl/cogl-type-casts.h
+include/muffin/cogl/cogl/cogl-trace.h
 include/muffin/cogl/cogl/cogl-types.h
-include/muffin/cogl/cogl/cogl-vector.h
 include/muffin/cogl/cogl/cogl-version.h
-include/muffin/cogl/cogl/cogl-vertex-buffer.h
-%%WAYLAND%%include/muffin/cogl/cogl/cogl-wayland-server.h
 include/muffin/cogl/cogl/cogl-xlib-renderer.h
 include/muffin/cogl/cogl/cogl-xlib.h
 include/muffin/cogl/cogl/cogl.h
 include/muffin/cogl/cogl/cogl1-context.h
 include/muffin/cogl/cogl/deprecated/cogl-auto-texture.h
-include/muffin/cogl/cogl/deprecated/cogl-clutter-xlib.h
 include/muffin/cogl/cogl/deprecated/cogl-clutter.h
-include/muffin/cogl/cogl/deprecated/cogl-framebuffer-deprecated.h
 include/muffin/cogl/cogl/deprecated/cogl-material-compat.h
 include/muffin/cogl/cogl/deprecated/cogl-shader.h
 include/muffin/cogl/cogl/deprecated/cogl-type-casts.h
-include/muffin/cogl/cogl/deprecated/cogl-vertex-buffer.h
 include/muffin/cogl/cogl/gl-prototypes/cogl-core-functions.h
 include/muffin/cogl/cogl/gl-prototypes/cogl-gles2-functions.h
 include/muffin/cogl/cogl/gl-prototypes/cogl-glsl-functions.h
 include/muffin/cogl/cogl/gl-prototypes/cogl-in-gles-core-functions.h
 include/muffin/cogl/cogl/gl-prototypes/cogl-in-gles2-core-functions.h
-include/muffin/meta/atomnames.h
+include/muffin/meta/barrier.h
 include/muffin/meta/boxes.h
 include/muffin/meta/common.h
-include/muffin/meta/compositor-muffin.h
+include/muffin/meta/compositor-mutter.h
 include/muffin/meta/compositor.h
 include/muffin/meta/display.h
-include/muffin/meta/errors.h
-include/muffin/meta/gradient.h
 include/muffin/meta/group.h
 include/muffin/meta/keybindings.h
 include/muffin/meta/main.h
+include/muffin/meta/meta-backend.h
 include/muffin/meta/meta-background-actor.h
+include/muffin/meta/meta-background-group.h
+include/muffin/meta/meta-background-image.h
+include/muffin/meta/meta-background.h
+include/muffin/meta/meta-close-dialog.h
+include/muffin/meta/meta-cursor-tracker.h
+include/muffin/meta/meta-dnd.h
+include/muffin/meta/meta-enum-types.h
+include/muffin/meta/meta-idle-monitor.h
+include/muffin/meta/meta-inhibit-shortcuts-dialog.h
+include/muffin/meta/meta-launch-context.h
+include/muffin/meta/meta-monitor-manager.h
 include/muffin/meta/meta-plugin.h
+include/muffin/meta/meta-remote-access-controller.h
+include/muffin/meta/meta-selection-source-memory.h
+include/muffin/meta/meta-selection-source.h
+include/muffin/meta/meta-selection.h
+include/muffin/meta/meta-settings.h
 include/muffin/meta/meta-shadow-factory.h
 include/muffin/meta/meta-shaped-texture.h
+include/muffin/meta/meta-sound-player.h
+include/muffin/meta/meta-stage.h
+include/muffin/meta/meta-startup-notification.h
+include/muffin/meta/meta-version.h
 include/muffin/meta/meta-window-actor.h
+include/muffin/meta/meta-window-group.h
+include/muffin/meta/meta-window-shape.h
+include/muffin/meta/meta-workspace-manager.h
+include/muffin/meta/meta-x11-background-actor.h
+include/muffin/meta/meta-x11-display.h
+include/muffin/meta/meta-x11-errors.h
 include/muffin/meta/prefs.h
-include/muffin/meta/preview-widget.h
-include/muffin/meta/screen.h
 include/muffin/meta/theme.h
 include/muffin/meta/types.h
 include/muffin/meta/util.h
@@ -260,10 +229,6 @@ include/muffin/meta/workspace.h
 lib/libmuffin.so
 lib/libmuffin.so.0
 lib/libmuffin.so.0.0.0
-lib/libmuffin-clutter-0.so
-lib/libmuffin-cogl-0.so
-lib/libmuffin-cogl-pango-0.so
-lib/libmuffin-cogl-path-0.so
 lib/muffin/Cally-0.gir
 lib/muffin/Cally-0.typelib
 lib/muffin/Clutter-0.gir
@@ -274,26 +239,32 @@ lib/muffin/Cogl-0.gir
 lib/muffin/Cogl-0.typelib
 lib/muffin/CoglPango-0.gir
 lib/muffin/CoglPango-0.typelib
-lib/muffin/Meta-Muffin.0.gir
-lib/muffin/Meta-Muffin.0.typelib
+lib/muffin/Meta-0.gir
+lib/muffin/Meta-0.typelib
 lib/muffin/libmuffin-clutter-0.so
+lib/muffin/libmuffin-clutter-0.so.0
+lib/muffin/libmuffin-clutter-0.so.0.0.0
 lib/muffin/libmuffin-cogl-0.so
+lib/muffin/libmuffin-cogl-0.so.0
+lib/muffin/libmuffin-cogl-0.so.0.0.0
 lib/muffin/libmuffin-cogl-pango-0.so
+lib/muffin/libmuffin-cogl-pango-0.so.0
+lib/muffin/libmuffin-cogl-pango-0.so.0.0.0
 lib/muffin/libmuffin-cogl-path-0.so
-lib/muffin/plugins/default.so
+lib/muffin/libmuffin-cogl-path-0.so.0
+lib/muffin/libmuffin-cogl-path-0.so.0.0.0
+lib/muffin/plugins/libdefault.so
+libdata/pkgconfig/libmuffin-0.pc
 libdata/pkgconfig/muffin-clutter-0.pc
 libdata/pkgconfig/muffin-clutter-x11-0.pc
 libdata/pkgconfig/muffin-cogl-0.pc
 libdata/pkgconfig/muffin-cogl-pango-0.pc
 libdata/pkgconfig/muffin-cogl-path-0.pc
-libdata/pkgconfig/libmuffin.pc
-libdata/pkgconfig/muffin-plugins.pc
 libexec/muffin-restart-helper
-man/man1/muffin-message.1.gz
-man/man1/muffin-theme-viewer.1.gz
-man/man1/muffin-window-demo.1.gz
 man/man1/muffin.1.gz
 share/applications/muffin.desktop
+share/glib-2.0/schemas/org.cinnamon.muffin.wayland.gschema.xml
+share/glib-2.0/schemas/org.cinnamon.muffin.x11.gschema.xml
 share/locale/am/LC_MESSAGES/muffin.mo
 share/locale/ar/LC_MESSAGES/muffin.mo
 share/locale/as/LC_MESSAGES/muffin.mo
@@ -323,7 +294,9 @@ share/locale/eu/LC_MESSAGES/muffin.mo
 share/locale/fa/LC_MESSAGES/muffin.mo
 share/locale/fi/LC_MESSAGES/muffin.mo
 share/locale/fr/LC_MESSAGES/muffin.mo
+share/locale/fur/LC_MESSAGES/muffin.mo
 share/locale/ga/LC_MESSAGES/muffin.mo
+share/locale/gd/LC_MESSAGES/muffin.mo
 share/locale/gl/LC_MESSAGES/muffin.mo
 share/locale/gu/LC_MESSAGES/muffin.mo
 share/locale/ha/LC_MESSAGES/muffin.mo
@@ -338,6 +311,7 @@ share/locale/is/LC_MESSAGES/muffin.mo
 share/locale/it/LC_MESSAGES/muffin.mo
 share/locale/ja/LC_MESSAGES/muffin.mo
 share/locale/ka/LC_MESSAGES/muffin.mo
+share/locale/kk/LC_MESSAGES/muffin.mo
 share/locale/kn/LC_MESSAGES/muffin.mo
 share/locale/ko/LC_MESSAGES/muffin.mo
 share/locale/ku/LC_MESSAGES/muffin.mo
@@ -374,6 +348,7 @@ share/locale/sr@latin/LC_MESSAGES/muffin.mo
 share/locale/sv/LC_MESSAGES/muffin.mo
 share/locale/ta/LC_MESSAGES/muffin.mo
 share/locale/te/LC_MESSAGES/muffin.mo
+share/locale/tg/LC_MESSAGES/muffin.mo
 share/locale/th/LC_MESSAGES/muffin.mo
 share/locale/tk/LC_MESSAGES/muffin.mo
 share/locale/tr/LC_MESSAGES/muffin.mo
@@ -386,5 +361,3 @@ share/locale/yo/LC_MESSAGES/muffin.mo
 share/locale/zh_CN/LC_MESSAGES/muffin.mo
 share/locale/zh_HK/LC_MESSAGES/muffin.mo
 share/locale/zh_TW/LC_MESSAGES/muffin.mo
-%%DATADIR%%/icons/muffin-window-demo.png
-%%DATADIR%%/theme/metacity-theme-3.xml
diff --git a/x11/cinnamon-desktop/Makefile b/x11/cinnamon-desktop/Makefile
index 1b5bf89ca1df..3fcbdb67ba7f 100644
--- a/x11/cinnamon-desktop/Makefile
+++ b/x11/cinnamon-desktop/Makefile
@@ -1,11 +1,11 @@
 PORTNAME=	cinnamon-desktop
-PORTVERSION=	4.8.1
+PORTVERSION=	5.4.2
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Additional UI API for cinnamon
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/cinnamon-desktop
 
 LICENSE=	GPLv2 LGPL20
 LICENSE_COMB=	multi
@@ -18,7 +18,7 @@ LIB_DEPENDS=	libpulse.so:audio/pulseaudio
 RUN_DEPENDS=	xkeyboard-config>=0:x11/xkeyboard-config \
 		libxkbfile>=0:x11/libxkbfile
 
-USES=		gettext gnome localbase meson pkgconfig python:3.5+,build shebangfix xorg
+USES=		gettext gnome localbase meson pkgconfig python:build shebangfix xorg
 USE_GNOME=	cairo gdkpixbuf2 gtk30 intltool introspection
 USE_XORG=	x11 xext xrandr
 USE_LDCONFIG=	yes
@@ -43,6 +43,7 @@ GLIB_SCHEMAS=	org.cinnamon.desktop.a11y.applications.gschema.xml \
 		org.cinnamon.desktop.lockdown.gschema.xml \
 		org.cinnamon.desktop.media-handling.gschema.xml \
 		org.cinnamon.desktop.notifications.gschema.xml \
+		org.cinnamon.desktop.peripherals.gschema.xml \
 		org.cinnamon.desktop.privacy.gschema.xml \
 		org.cinnamon.desktop.screensaver.gschema.xml \
 		org.cinnamon.desktop.session.gschema.xml \
diff --git a/x11/cinnamon-desktop/distinfo b/x11/cinnamon-desktop/distinfo
index f47fd9557972..607d949b3e3b 100644
--- a/x11/cinnamon-desktop/distinfo
+++ b/x11/cinnamon-desktop/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1608877630
-SHA256 (gnome/linuxmint-cinnamon-desktop-4.8.1_GH0.tar.gz) = cb9aeff385764ba33cf4f7ee2bb5cb7308960670e8fa9f3be38a1d431b20436d
-SIZE (gnome/linuxmint-cinnamon-desktop-4.8.1_GH0.tar.gz) = 495417
+TIMESTAMP = 1660019817
+SHA256 (gnome/linuxmint-cinnamon-desktop-5.4.2_GH0.tar.gz) = 862828d97518becf9dd085d76cae9d65090811c82f1dab41392fe89a6b927371
+SIZE (gnome/linuxmint-cinnamon-desktop-5.4.2_GH0.tar.gz) = 502072
diff --git a/x11/cinnamon-desktop/files/patch-libcvc_gvc-channel-map.c b/x11/cinnamon-desktop/files/patch-libcvc_gvc-channel-map.c
new file mode 100644
index 000000000000..4bdf7e1ea04f
--- /dev/null
+++ b/x11/cinnamon-desktop/files/patch-libcvc_gvc-channel-map.c
@@ -0,0 +1,31 @@
+diff --git libcvc/gvc-channel-map.c libcvc/gvc-channel-map.c
+index 7f14c8b..69682ac 100644
+--- libcvc/gvc-channel-map.c
++++ libcvc/gvc-channel-map.c
+@@ -109,7 +109,7 @@ gvc_channel_map_set_balance (GvcChannelMap *map,
+ {
+         pa_cvolume cv;
+ 
+-        g_return_val_if_fail (GVC_IS_CHANNEL_MAP (map), NULL);
++        g_return_if_fail (GVC_IS_CHANNEL_MAP (map));
+ 
+         if (!gvc_channel_map_can_balance (map))
+                 return;
+@@ -149,7 +149,7 @@ gvc_channel_map_set_fade (GvcChannelMap *map,
+ {
+         pa_cvolume cv;
+ 
+-        g_return_val_if_fail (GVC_IS_CHANNEL_MAP (map), NULL);
++        g_return_if_fail (GVC_IS_CHANNEL_MAP (map));
+ 
+         if (!gvc_channel_map_can_fade (map))
+                 return;
+@@ -191,7 +191,7 @@ gvc_channel_map_set_lfe (GvcChannelMap *map,
+ {
+         pa_cvolume cv;
+ 
+-        g_return_val_if_fail (GVC_IS_CHANNEL_MAP (map), NULL);
++        g_return_if_fail (GVC_IS_CHANNEL_MAP (map));
+ 
+         if (!gvc_channel_map_has_lfe (map))
+                 return;
diff --git a/x11/cinnamon-desktop/pkg-plist b/x11/cinnamon-desktop/pkg-plist
index ba5c8a2fb00f..0dee9904a389 100644
--- a/x11/cinnamon-desktop/pkg-plist
+++ b/x11/cinnamon-desktop/pkg-plist
@@ -13,7 +13,9 @@ include/cinnamon-desktop/libcinnamon-desktop/gnome-xkb-info.h
 include/cinnamon-desktop/libcvc/gvc-channel-map.h
 include/cinnamon-desktop/libcvc/gvc-mixer-card.h
 include/cinnamon-desktop/libcvc/gvc-mixer-control.h
+include/cinnamon-desktop/libcvc/gvc-mixer-event-role.h
 include/cinnamon-desktop/libcvc/gvc-mixer-sink-input.h
+include/cinnamon-desktop/libcvc/gvc-mixer-sink.h
 include/cinnamon-desktop/libcvc/gvc-mixer-source-output.h
 include/cinnamon-desktop/libcvc/gvc-mixer-source.h
 include/cinnamon-desktop/libcvc/gvc-mixer-stream.h
diff --git a/x11/cinnamon-menus/Makefile b/x11/cinnamon-menus/Makefile
index ba635cc27987..a492ef449fdd 100644
--- a/x11/cinnamon-menus/Makefile
+++ b/x11/cinnamon-menus/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	cinnamon-menus
-PORTVERSION=	4.8.2
+PORTVERSION=	5.4.0
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
diff --git a/x11/cinnamon-menus/distinfo b/x11/cinnamon-menus/distinfo
index 1ca8c7539219..542c41805ba7 100644
--- a/x11/cinnamon-menus/distinfo
+++ b/x11/cinnamon-menus/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1608877915
-SHA256 (gnome/linuxmint-cinnamon-menus-4.8.2_GH0.tar.gz) = 6c19ebcea0d35a7a65cd70f1cdca2c5c739467ac6d2c2a1c38a5d580296707bd
-SIZE (gnome/linuxmint-cinnamon-menus-4.8.2_GH0.tar.gz) = 101831
+TIMESTAMP = 1656716842
+SHA256 (gnome/linuxmint-cinnamon-menus-5.4.0_GH0.tar.gz) = 47eb864105711c28c4851b64bcc82aa5701095996698db170b86be9ebd914e07
+SIZE (gnome/linuxmint-cinnamon-menus-5.4.0_GH0.tar.gz) = 96312
diff --git a/x11/cinnamon-screensaver/Makefile b/x11/cinnamon-screensaver/Makefile
index c55da41f4c29..aa295a75b287 100644
--- a/x11/cinnamon-screensaver/Makefile
+++ b/x11/cinnamon-screensaver/Makefile
@@ -1,11 +1,11 @@
 PORTNAME=	cinnamon-screensaver
-PORTVERSION=	4.8.1
-PORTREVISION=	2
+PORTVERSION=	5.4.2
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Cinnamon screen saver and locker
+WWW=		https://github.com/linuxmint/cinnamon-screensaver
 
 LICENSE=	GPLv2+ LGPL21
 LICENSE_COMB=	multi
@@ -15,20 +15,22 @@ LICENSE_FILE_LGPL21=	${WRKSRC}/COPYING.LIB
 BUILD_DEPENDS=	gsettings-desktop-schemas>=3.2.0:devel/gsettings-desktop-schemas
 LIB_DEPENDS=	libaccountsservice.so:sysutils/accountsservice \
 		libcinnamon-desktop.so:x11/cinnamon-desktop \
-		libdbus-glib-1.so:devel/dbus-glib
+		libdbus-glib-1.so:devel/dbus-glib \
+		libxdo.so:x11/xdotool
 RUN_DEPENDS=	${LOCALBASE}/lib/pam_gnome_keyring.so:security/gnome-keyring \
 		${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}python-xapp>0:x11/py-python-xapp@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}python-xapp>0:x11/py-python-xapp@${PY_FLAVOR} \
+		${LOCALBASE}/libexec/unix-selfauth-helper:security/unix-selfauth-helper
 
-USES=		gettext-tools gnome meson pkgconfig python:3.5+ shebangfix xorg
+USES=		gettext-tools gnome meson pkgconfig python shebangfix xorg
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
 
 USE_XORG=	x11 xext xinerama xrandr xscrnsaver
 
-USE_GNOME=	cairo gdkpixbuf2 intltool introspection:build libgnomekbd pygobject3
+USE_GNOME=	cairo gdkpixbuf2 glib20 intltool introspection:build libgnomekbd pygobject3
 
 SHEBANG_GLOB=	*.py
 BINARY_ALIAS=	python3=${PYTHON_CMD}
@@ -38,13 +40,16 @@ USE_LDCONFIG=	yes
 SUB_FILES+=	cinnamon-screensaver.pam
 
 post-patch:
-	@${FIND} ${WRKSRC} -name \*.py | ${XARGS} ${REINPLACE_CMD} \
-		-e 's|/usr/bin|${PREFIX}/bin|g' \
-		-e 's|/usr/lib|${PREFIX}/lib|g' \
-		-e 's|/usr/share|${PREFIX}/share|g'
+	@${REINPLACE_CMD} -e 's|/usr/lib|${PREFIX}/lib|g' \
+		${WRKSRC}/src/pamhelper/authClient.py
 	@${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}/share|' \
 		${WRKSRC}/src/pamhelper/cinnamon-screensaver-pam-helper.c \
-		${WRKSRC}/libcscreensaver/test-passwd.c
+		${WRKSRC}/libcscreensaver/test-passwd.c \
+		${WRKSRC}/src/cinnamon-screensaver-command.py \
+		${WRKSRC}/src/cinnamon-screensaver-main.py \
+		${WRKSRC}/src/passwordEntry.py
+	@${REINPLACE_CMD} -e 's|/etc/pam|${PREFIX}/etc/pam|g' \
+		${WRKSRC}/libcscreensaver/cs-auth-pam.c
 
 post-install:
 	${INSTALL_DATA} ${WRKDIR}/cinnamon-screensaver.pam \
diff --git a/x11/cinnamon-screensaver/distinfo b/x11/cinnamon-screensaver/distinfo
index 05d5ca7a164e..fa7052a69e99 100644
--- a/x11/cinnamon-screensaver/distinfo
+++ b/x11/cinnamon-screensaver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1608879152
-SHA256 (gnome/linuxmint-cinnamon-screensaver-4.8.1_GH0.tar.gz) = e06a9f28cba55c38d1464d02917eb374de941fd09007608c239a348e7653b675
-SIZE (gnome/linuxmint-cinnamon-screensaver-4.8.1_GH0.tar.gz) = 141996
+TIMESTAMP = 1660022189
+SHA256 (gnome/linuxmint-cinnamon-screensaver-5.4.2_GH0.tar.gz) = 7ae54b1fc83fff3082b3b43bf5bf01f7cf49eb35cd6b5b42c0e454e2fd619748
+SIZE (gnome/linuxmint-cinnamon-screensaver-5.4.2_GH0.tar.gz) = 154799
diff --git a/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in b/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in
index 508baf07d5b1..da594d196c69 100644
--- a/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in
+++ b/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in
@@ -1,3 +1,4 @@
+auth		sufficient	pam_exec.so	return_prog_exit_status expose_authtok %%LOCALBASE%%/libexec/unix-selfauth-helper
 auth		include		system
 auth		optional	%%LOCALBASE%%/lib/pam_gnome_keyring.so
 account		include		system
diff --git a/x11/cinnamon-screensaver/pkg-plist b/x11/cinnamon-screensaver/pkg-plist
index 7b7c3c9ac13c..7b8e7c7faa89 100644
--- a/x11/cinnamon-screensaver/pkg-plist
+++ b/x11/cinnamon-screensaver/pkg-plist
@@ -1,14 +1,14 @@
 bin/cinnamon-screensaver
 bin/cinnamon-screensaver-command
+bin/cinnamon-unlock-desktop
 etc/pam.d/cinnamon-screensaver
-include/cinnamon-screensaver/libcscreensaver/cs-auth.h
-include/cinnamon-screensaver/libcscreensaver/setuid.h
 lib/girepository-1.0/CScreensaver-1.0.typelib
 lib/libcscreensaver.so
 lib/libcscreensaver.so.0
 lib/libcscreensaver.so.0.0.0
 libdata/pkgconfig/cscreensaver.pc
-libexec/cinnamon-screensaver-pam-helper
+@(,,4555) libexec/cinnamon-screensaver-pam-helper
+libexec/cs-backup-locker
 %%DATADIR%%/__init__.py
 %%DATADIR%%/albumArt.py
 %%DATADIR%%/audioPanel.py
@@ -29,7 +29,6 @@ libexec/cinnamon-screensaver-pam-helper
 %%DATADIR%%/dbusdepot/logindClient.py
 %%DATADIR%%/dbusdepot/mediaPlayerWatcher.py
 %%DATADIR%%/dbusdepot/nameBlocker.py
-%%DATADIR%%/dbusdepot/screensaverClient.py
 %%DATADIR%%/dbusdepot/sessionClient.py
 %%DATADIR%%/dbusdepot/uPowerClient.py
 %%DATADIR%%/floating.py
@@ -49,7 +48,6 @@ libexec/cinnamon-screensaver-pam-helper
 %%DATADIR%%/util/eventHandler.py
 %%DATADIR%%/util/fader.py
 %%DATADIR%%/util/focusNavigator.py
-%%DATADIR%%/util/grabHelper.py
 %%DATADIR%%/util/keybindings.py
 %%DATADIR%%/util/settings.py
 %%DATADIR%%/util/trackers.py
@@ -62,10 +60,11 @@ libexec/cinnamon-screensaver-pam-helper
 %%DATADIR%%/widgets/powerWidget.py
 %%DATADIR%%/widgets/transparentButton.py
 %%DATADIR%%/widgets/volumeSlider.py
-share/applications/cinnamon-screensaver.desktop
+share/applications/org.cinnamon.ScreenSaver.desktop
 share/dbus-1/services/org.cinnamon.ScreenSaver.service
 share/gir-1.0/CScreensaver-1.0.gir
 share/icons/hicolor/scalable/actions/screensaver-switch-users-symbolic.svg
 share/icons/hicolor/scalable/actions/screensaver-unlock-symbolic.svg
+share/icons/hicolor/scalable/apps/csr-backup-locker-icon.svg
 share/icons/hicolor/scalable/status/screensaver-blank.svg
 share/icons/hicolor/scalable/status/screensaver-notification-symbolic.svg
diff --git a/x11/cinnamon-session/Makefile b/x11/cinnamon-session/Makefile
index 1348aa5c3012..2259b28d78f5 100644
--- a/x11/cinnamon-session/Makefile
+++ b/x11/cinnamon-session/Makefile
@@ -1,12 +1,11 @@
 PORTNAME=	cinnamon-session
-PORTVERSION=	4.8.0
-PORTREVISION=	2
+PORTVERSION=	5.4.0
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Session component for the cinnamon desktop
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/cinnamon-session
 
 LICENSE=	GPLv2
 
@@ -16,13 +15,11 @@ LIB_DEPENDS=	libdbus-1.so:devel/dbus \
 		libcanberra.so:audio/libcanberra
 RUN_DEPENDS=	console-kit-daemon:sysutils/consolekit2
 
-USES=		gl gnome meson pkgconfig python:3.5+,build shebangfix xorg
+USES=		gl gnome meson pkgconfig python:build shebangfix xorg
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
 
-CONFIGURE_ARGS=	-Dgconf=false
-
 SHEBANG_FILES=	data/meson_install_schemas.py
 
 USE_GNOME=	cairo gdkpixbuf2 gtk30
@@ -31,12 +28,9 @@ USE_GL=		gl
 
 GLIB_SCHEMAS=	org.cinnamon.SessionManager.gschema.xml
 
-OPTIONS_DEFINE=	DOCS IPV6
+OPTIONS_DEFINE=	IPV6
 OPTIONS_DEFAULT=	IPV6
 
-DOCS_BUILD_DEPENDS=	xmlto:textproc/xmlto
-DOCS_MESON_TRUE=	docbook
-
 IPV6_MESON_TRUE=	ipv6
 
 .include <bsd.port.mk>
diff --git a/x11/cinnamon-session/distinfo b/x11/cinnamon-session/distinfo
index ce4dd888fe17..61afde6aceaf 100644
--- a/x11/cinnamon-session/distinfo
+++ b/x11/cinnamon-session/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1606806314
-SHA256 (gnome/linuxmint-cinnamon-session-4.8.0_GH0.tar.gz) = 66301a1eb748f646c419ced76f3388d8d6af0436716c737842cd85f359bd38d4
-SIZE (gnome/linuxmint-cinnamon-session-4.8.0_GH0.tar.gz) = 199684
+TIMESTAMP = 1656715196
+SHA256 (gnome/linuxmint-cinnamon-session-5.4.0_GH0.tar.gz) = c3c9351aecebe2abbb5d61663ad19af56fc6413ad6cddb5d753a614b23ec547d
+SIZE (gnome/linuxmint-cinnamon-session-5.4.0_GH0.tar.gz) = 199698
diff --git a/x11/cinnamon-session/pkg-plist b/x11/cinnamon-session/pkg-plist
index 4b04718eddf0..78e4e6863e2b 100644
--- a/x11/cinnamon-session/pkg-plist
+++ b/x11/cinnamon-session/pkg-plist
@@ -6,7 +6,6 @@ man/man1/cinnamon-session-quit.1.gz
 man/man1/cinnamon-session.1.gz
 %%DATADIR%%/csm-inhibit-dialog.glade
 %%DATADIR%%/hardware-compatibility
-%%PORTDOCS%%%%DOCSDIR%%/dbus/cinnamon-session.html
 share/icons/hicolor/16x16/apps/cinnamon-session-properties.png
 share/icons/hicolor/22x22/apps/cinnamon-session-properties.png
 share/icons/hicolor/24x24/apps/cinnamon-session-properties.png
diff --git a/x11/cinnamon/Makefile b/x11/cinnamon/Makefile
index a7a72b0fc58a..065421fdd0c0 100644
--- a/x11/cinnamon/Makefile
+++ b/x11/cinnamon/Makefile
@@ -1,28 +1,27 @@
 PORTNAME=	cinnamon
-PORTVERSION=	4.8.6
-PORTREVISION=	3
+PORTVERSION=	5.4.9
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES+=	aa0bf5b13078.patch:-p1 # https://github.com/linuxmint/cinnamon/pull/10606
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	Fork of GNOME Shell with layout similar to GNOME 2
-WWW=		http://cinnamon.linuxmint.com/
+WWW=		https://github.com/linuxmint/cinnamon
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	ca_root_nss>0:security/ca_root_nss
+BUILD_DEPENDS=	ca_root_nss>0:security/ca_root_nss \
+		${LOCALBASE}/include/EGL/eglmesaext.h:graphics/mesa-dri
 LIB_DEPENDS=	libcjs.so:lang/cjs \
 		libmuffin.so:x11-wm/muffin \
 		libcinnamon-menu-3.so:x11/cinnamon-menus \
 		libdbus-1.so:devel/dbus \
 		libpolkit-agent-1.so:sysutils/polkit \
 		libatk-bridge-2.0.so:accessibility/at-spi2-atk \
-		libstartup-notification-1.so:x11/startup-notification \
-		libsoup-2.4.so:devel/libsoup
+		libsoup-2.4.so:devel/libsoup \
+		libxapp.so:x11/xapp
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \
 		ca_root_nss>0:security/ca_root_nss \
 		gnome-themes-extra>3.0.0:x11-themes/gnome-themes-extra \
@@ -39,22 +38,29 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tinycss>0:textproc/py-tinycss@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+		gkbd-keyboard-display:x11/libgnomekbd \
+		gucharmap:deskutils/gucharmap \
+		keybinder-gtk3>0:x11/keybinder-gtk3 \
 		timezonemap>0:misc/timezonemap \
+		${LOCALBASE}/lib/girepository-1.0/GSound-1.0.typelib:audio/gsound \
 		gnome-backgrounds>0:x11-themes/gnome-backgrounds \
 		metacity:x11-wm/metacity \
 		tint2:x11/tint
 
-USES=		compiler:c11 cpe gettext gl gnome gstreamer meson pkgconfig python:3.5+ shebangfix xorg
+USES=		compiler:c11 cpe gettext-runtime gettext-tools:run gl gnome gstreamer \
+		meson perl5 pkgconfig python shebangfix xorg
 CPE_VENDOR=	linuxmint
 USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 intltool introspection libxml2 pygobject3
 USE_XORG=	x11 xfixes
 USE_GL=		gl
+USE_PERL5=	build
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	linuxmint
 
 SHEBANG_GLOB=	*.py
-SHEBANG_FILES=	files/*
+SHEBANG_FILES=	files/* src/data-to-c.pl
 
 USE_LDCONFIG=	yes
 
@@ -109,12 +115,4 @@ post-patch:
 		@${MV} ${WRKSRC}/files/usr/${i} ${WRKSRC}/files${PREFIX}
 .	endfor
 
-post-install:
-	# Ship the GNOME Backgrounds set
-	@${MKDIR} ${STAGEDIR}${PREFIX}/share/cinnamon-background-properties
-	@${LN} -s ${PREFIX}/share/gnome-background-properties/adwaita.xml \
-		${STAGEDIR}${PREFIX}/share/cinnamon-background-properties/adwaita.xml
-	@${LN} -s ${PREFIX}/share/gnome-background-properties/gnome-backgrounds.xml \
-		${STAGEDIR}${PREFIX}/share/cinnamon-background-properties/gnome-backgrounds.xml
-
 .include <bsd.port.mk>
diff --git a/x11/cinnamon/distinfo b/x11/cinnamon/distinfo
index 9fe715816dac..88eb442ad3e0 100644
--- a/x11/cinnamon/distinfo
+++ b/x11/cinnamon/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1612598797
-SHA256 (gnome/linuxmint-cinnamon-4.8.6_GH0.tar.gz) = 00f82253f44c694c379e29959aa6e57b4878b722df1f08d68f9466272ef64893
-SIZE (gnome/linuxmint-cinnamon-4.8.6_GH0.tar.gz) = 2378117
-SHA256 (gnome/aa0bf5b13078.patch) = 82e482496063ab479759b9561f56b18a72578c32af7fbc1237d8566d39a63227
-SIZE (gnome/aa0bf5b13078.patch) = 1573
+TIMESTAMP = 1660060329
+SHA256 (gnome/linuxmint-cinnamon-5.4.9_GH0.tar.gz) = 19c5e85f65baacc79f961cbcebb20fb0050ad6f21678638a9dd1868d197b4727
+SIZE (gnome/linuxmint-cinnamon-5.4.9_GH0.tar.gz) = 2468335
diff --git a/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_capi.py b/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_capi.py
new file mode 100644
index 000000000000..8ea487050de1
--- /dev/null
+++ b/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_capi.py
@@ -0,0 +1,39 @@
+--- files/usr/share/cinnamon/cinnamon-settings/bin/capi.py.orig	2022-06-21 15:01:39 UTC
++++ files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
+@@ -27,31 +27,11 @@ class CManager():
+         self.extension_point = Gio.io_extension_point_register ("cinnamon-control-center-1")
+         self.modules = []
+ 
+-        architecture = platform.machine()
+-        # get the arch-specific triplet, e.g. 'x86_64-linux-gnu' or 'arm-linux-gnueabihf'
+-        # see also: https://wiki.debian.org/Python/MultiArch
+-        triplet = sysconfig.get_config_var('MULTIARCH')
+-        paths = ["/usr/lib", f"/usr/lib/{triplet}"]
+-
+-        # On x86 archs, iterate through multiple paths
+-        # For instance, on a Mint i686 box, the path is actually /usr/lib/i386-linux-gnu
+-        x86archs = ["i386", "i486", "i586", "i686"]
+-        if architecture in x86archs:
+-            for arch in x86archs:
+-                paths += ["/usr/lib/%s" % arch]
+-        elif architecture == "x86_64":
+-            paths += ["/usr/lib/x86_64", "/usr/lib64"]
+-        else:
+-            paths += ["/usr/lib/%s" % architecture]
+-
+-        for path in paths:
+-            if not os.path.islink(path):
+-                path = os.path.join(path, "cinnamon-control-center-1/panels")
+-                if os.path.exists(path):
+-                    try:
+-                        self.modules = self.modules + Gio.io_modules_load_all_in_directory(path)
+-                    except Exception as e:
+-                        print("capi failed to load multiarch modules from %s: " % path, e)
++        path = os.path.join("/usr/lib", "cinnamon-control-center-1/panels")
++        try:
++            self.modules = self.modules + Gio.io_modules_load_all_in_directory(path)
++        except Exception as e:
++            print("capi failed to load multiarch modules from %s: " % path, e)
+ 
+     def get_c_widget(self, mod_id):
+         extension = self.extension_point.get_extension_by_name(mod_id)
diff --git a/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_util.py b/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_util.py
new file mode 100644
index 000000000000..337a9555cf80
--- /dev/null
+++ b/x11/cinnamon/files/patch-files_usr_share_cinnamon_cinnamon-settings_bin_util.py
@@ -0,0 +1,11 @@
+--- files/usr/share/cinnamon/cinnamon-settings/bin/util.py.orig	2021-10-15 14:38:11 UTC
++++ files/usr/share/cinnamon/cinnamon-settings/bin/util.py
+@@ -6,7 +6,7 @@ def strip_syspath_locals():
+ 
+     new_path = []
+     for path in sys.path:
+-        if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
++        if path.startswith((os.path.expanduser("~/.local"))):
+             continue
+         new_path.append(path)
+ 
diff --git a/x11/cinnamon/files/patch-src_cinnamon-global.c b/x11/cinnamon/files/patch-src_cinnamon-global.c
new file mode 100644
index 000000000000..558cb8065231
--- /dev/null
+++ b/x11/cinnamon/files/patch-src_cinnamon-global.c
@@ -0,0 +1,22 @@
+diff --git src/cinnamon-global.c src/cinnamon-global.c
+index 23c3f2842..ae8c64a06 100644
+--- src/cinnamon-global.c
++++ src/cinnamon-global.c
+@@ -16,6 +16,10 @@
+ #include <meta/main.h>
+ #include <cogl-pango/cogl-pango.h>
+ 
++#ifdef __FreeBSD__
++#include <sys/sysctl.h>
++#endif
++
+ static CinnamonGlobal *the_object = NULL;
+ 
+ enum {
+@@ -1605,4 +1609,4 @@ cinnamon_global_alloc_leak (CinnamonGlobal *global, gint mb)
+                                       "xxxxxxxxxxxxxxxxxxxxxxxx"
+         );
+     }
+-}
+\ No newline at end of file
++}
diff --git a/x11/cinnamon/files/patch-src_st_meson.build b/x11/cinnamon/files/patch-src_st_meson.build
deleted file mode 100644
index bae6fb1c5d63..000000000000
--- a/x11/cinnamon/files/patch-src_st_meson.build
+++ /dev/null
@@ -1,19 +0,0 @@
-Attempt to fix parallel build
-
-In file included from ../src/main.c:25:
-In file included from ../src/cinnamon-global-private.h:28:
-In file included from src/st/st.h:7:
-../src/st/st-box-layout-child.h:24:10: fatal error: 'st-enum-types.h' file not found
-#include "st-enum-types.h"
-         ^~~~~~~~~~~~~~~~~
-
---- src/st/meson.build.orig	2021-04-06 04:24:56 UTC
-+++ src/st/meson.build
-@@ -189,6 +189,7 @@ libst = library(
- st_dep = declare_dependency(
-     include_directories: include_directories('.', 'croco'),
-     dependencies: libst_deps,
-+    sources: st_enum_types[1],
-     link_with: libst,
-     link_args: ['-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now'],
- )
diff --git a/x11/cinnamon/pkg-plist b/x11/cinnamon/pkg-plist
index c53004e3294d..db0dbcc5c3f2 100644
--- a/x11/cinnamon/pkg-plist
+++ b/x11/cinnamon/pkg-plist
@@ -1,6 +1,11 @@
 bin/cinnamon
+bin/cinnamon-calendar-server
+bin/cinnamon-close-dialog
+bin/cinnamon-dbus-command
 bin/cinnamon-desktop-editor
+bin/cinnamon-display-changes-dialog
 bin/cinnamon-file-dialog
+bin/cinnamon-hover-click
 bin/cinnamon-install-spice
 bin/cinnamon-json-makepot
 bin/cinnamon-killer-daemon
@@ -14,6 +19,7 @@ bin/cinnamon-session-cinnamon2d
 bin/cinnamon-settings
 bin/cinnamon-settings-users
 bin/cinnamon-slideshow
+bin/cinnamon-spice-updater
 bin/cinnamon-subprocess-wrapper
 bin/cinnamon-xlet-makepot
 bin/cinnamon2d
@@ -24,6 +30,12 @@ lib/cinnamon/Cinnamon-0.1.typelib
 lib/cinnamon/St-1.0.typelib
 lib/cinnamon/libcinnamon.so
 lib/cinnamon/libst.so
+%%PYTHON_SITELIBDIR%%/cinnamon/__init__.py
+%%PYTHON_SITELIBDIR%%/cinnamon/harvester.py
+%%PYTHON_SITELIBDIR%%/cinnamon/logger.py
+%%PYTHON_SITELIBDIR%%/cinnamon/proxygsettings.py
+%%PYTHON_SITELIBDIR%%/cinnamon/updates.py
+libexec/cinnamon-calendar-server.py
 libexec/cinnamon-hotplug-sniffer
 libexec/cinnamon-perf-helper
 man/man1/cinnamon-launcher.1.gz
@@ -70,14 +82,13 @@ share/applications/cinnamon-settings-workspaces.desktop
 share/applications/cinnamon-settings.desktop
 share/applications/cinnamon.desktop
 share/applications/cinnamon2d.desktop
-%%DATADIR%%-background-properties/adwaita.xml
-%%DATADIR%%-background-properties/gnome-backgrounds.xml
 %%DATADIR%%-session/sessions/cinnamon.session
 %%DATADIR%%-session/sessions/cinnamon2d.session
 %%DATADIR%%/applets/a11y@cinnamon.org/applet.js
 %%DATADIR%%/applets/a11y@cinnamon.org/metadata.json
 %%DATADIR%%/applets/calendar@cinnamon.org/applet.js
 %%DATADIR%%/applets/calendar@cinnamon.org/calendar.js
+%%DATADIR%%/applets/calendar@cinnamon.org/eventView.js
 %%DATADIR%%/applets/calendar@cinnamon.org/metadata.json
 %%DATADIR%%/applets/calendar@cinnamon.org/settings-schema.json
 %%DATADIR%%/applets/expo@cinnamon.org/applet.js
@@ -207,7 +218,6 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/bumpmaps/frost.png
 %%DATADIR%%/bumpmaps/hex.png
 %%DATADIR%%/bumpmaps/lizard.png
-%%DATADIR%%/cinnamon-dbus-command
 %%DATADIR%%/cinnamon-desktop-editor/cinnamon-desktop-editor.py
 %%DATADIR%%/cinnamon-desktop-editor/directory-editor.ui
 %%DATADIR%%/cinnamon-desktop-editor/launcher-editor.ui
@@ -246,6 +256,7 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/cinnamon-settings/bin/scrollbar-test-widget.glade
 %%DATADIR%%/cinnamon-settings/bin/scrollbar-test-widget.py
 %%DATADIR%%/cinnamon-settings/bin/tweenEquations.py
+%%DATADIR%%/cinnamon-settings/bin/util.py
 %%DATADIR%%/cinnamon-settings/cinnamon-online-accounts-info.ui
 %%DATADIR%%/cinnamon-settings/cinnamon-settings.py
 %%DATADIR%%/cinnamon-settings/cinnamon-settings.ui
@@ -290,7 +301,6 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/desklets/launcher@cinnamon.org/editorDialog.ui
 %%DATADIR%%/desklets/launcher@cinnamon.org/metadata.json
 %%DATADIR%%/desklets/photoframe@cinnamon.org/desklet.js
-%%DATADIR%%/desklets/photoframe@cinnamon.org/icon.png
 %%DATADIR%%/desklets/photoframe@cinnamon.org/metadata.json
 %%DATADIR%%/desklets/photoframe@cinnamon.org/settings-schema.json
 %%DATADIR%%/desklets/photoframe@cinnamon.org/stylesheet.css
@@ -335,6 +345,7 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/js/misc/gnomeSession.js
 %%DATADIR%%/js/misc/gridNavigator.js
 %%DATADIR%%/js/misc/history.js
+%%DATADIR%%/js/misc/inputMethod.js
 %%DATADIR%%/js/misc/interfaces.js
 %%DATADIR%%/js/misc/modemManager.js
 %%DATADIR%%/js/misc/params.js
@@ -373,7 +384,6 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/js/ui/flashspot.js
 %%DATADIR%%/js/ui/hotCorner.js
 %%DATADIR%%/js/ui/keybindings.js
-%%DATADIR%%/js/ui/keyboard.js
 %%DATADIR%%/js/ui/layout.js
 %%DATADIR%%/js/ui/lightbox.js
 %%DATADIR%%/js/ui/lookingGlass.js
@@ -391,6 +401,8 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/js/ui/popupMenu.js
 %%DATADIR%%/js/ui/radioButton.js
 %%DATADIR%%/js/ui/runDialog.js
+%%DATADIR%%/js/ui/screenRecorder.js
+%%DATADIR%%/js/ui/screenshot.js
 %%DATADIR%%/js/ui/search.js
 %%DATADIR%%/js/ui/searchProviderManager.js
 %%DATADIR%%/js/ui/separator.js
@@ -404,9 +416,11 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/js/ui/themeManager.js
 %%DATADIR%%/js/ui/tooltips.js
 %%DATADIR%%/js/ui/tweener.js
+%%DATADIR%%/js/ui/virtualKeyboard.js
 %%DATADIR%%/js/ui/windowAttentionHandler.js
-%%DATADIR%%/js/ui/windowEffects.js
 %%DATADIR%%/js/ui/windowManager.js
+%%DATADIR%%/js/ui/windowMenu.js
+%%DATADIR%%/js/ui/wmGtkDialogs.js
 %%DATADIR%%/js/ui/workspace.js
 %%DATADIR%%/js/ui/workspacesView.js
 %%DATADIR%%/js/ui/xdndHandler.js
@@ -419,6 +433,8 @@ share/applications/cinnamon2d.desktop
 %%DATADIR%%/theme/add-workspace.png
 %%DATADIR%%/theme/calendar-arrow-left.svg
 %%DATADIR%%/theme/calendar-arrow-right.svg
+%%DATADIR%%/theme/calendar-selected.svg
+%%DATADIR%%/theme/calendar-today-selected.svg
 %%DATADIR%%/theme/calendar-today.svg
 %%DATADIR%%/theme/checkbox-off.svg
 %%DATADIR%%/theme/checkbox.svg
@@ -470,6 +486,7 @@ share/applications/cinnamon2d.desktop
 share/dbus-1/services/org.Cinnamon.HotplugSniffer.service
 share/dbus-1/services/org.Cinnamon.Melange.service
 share/dbus-1/services/org.Cinnamon.Slideshow.service
+share/dbus-1/services/org.cinnamon.CalendarServer.service
 share/desktop-directories/cinnamon-audio-video.directory
 share/desktop-directories/cinnamon-c.directory
 share/desktop-directories/cinnamon-development.directory
@@ -592,7 +609,6 @@ share/desktop-directories/cinnamon-utility.directory
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StScrollView.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StScrollable.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StTable.html
-%%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StTextureCache.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StTheme.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StThemeContext.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/StThemeNode.html
@@ -601,6 +617,7 @@ share/desktop-directories/cinnamon-utility.directory
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/annotation-glossary.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/api-index-full.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/base.html
+%%PORTDOCS%%share/gtk-doc/html/cinnamon-st/cinnamon-st-st-texture-cache.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/cinnamon-st.devhelp2
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/containers.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon-st/deprecated-api-index.html
@@ -647,12 +664,9 @@ share/desktop-directories/cinnamon-utility.directory
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonGenericContainer.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonGlobal.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonGtkEmbed.html
-%%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonRecorder.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonSlicer.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonStack.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonTrayIcon.html
-%%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonTrayManager.html
-%%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonWM.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/CinnamonWindowTracker.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/annotation-glossary.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/api-index-full.html
@@ -662,7 +676,9 @@ share/desktop-directories/cinnamon-utility.directory
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/ch04.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/ch05.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/ch06.html
+%%PORTDOCS%%share/gtk-doc/html/cinnamon/cinnamon-cinnamon-tray-manager.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/cinnamon-cinnamon-util.html
+%%PORTDOCS%%share/gtk-doc/html/cinnamon/cinnamon-cinnamon-wm.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/cinnamon.devhelp2
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/deprecated-api-index.html
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/home.png
@@ -675,11 +691,15 @@ share/desktop-directories/cinnamon-utility.directory
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/style.css
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/up-insensitive.png
 %%PORTDOCS%%share/gtk-doc/html/cinnamon/up.png
-share/icons/hicolor/scalable/actions/caps-lock-off-symbolic.svg
-share/icons/hicolor/scalable/actions/caps-lock-symbolic.svg
+share/icons/hicolor/24x24/actions/cinnamon-hc-double-click.png
+share/icons/hicolor/24x24/actions/cinnamon-hc-drag-click.png
+share/icons/hicolor/24x24/actions/cinnamon-hc-right-click.png
+share/icons/hicolor/24x24/actions/cinnamon-hc-single-click.png
+share/icons/hicolor/scalable/actions/cinnamon-caps-lock-off-symbolic.svg
+share/icons/hicolor/scalable/actions/cinnamon-caps-lock-symbolic.svg
+share/icons/hicolor/scalable/actions/cinnamon-num-lock-off-symbolic.svg
+share/icons/hicolor/scalable/actions/cinnamon-num-lock-symbolic.svg
 share/icons/hicolor/scalable/actions/list-edit-symbolic.svg
-share/icons/hicolor/scalable/actions/num-lock-off-symbolic.svg
-share/icons/hicolor/scalable/actions/num-lock-symbolic.svg
 share/icons/hicolor/scalable/actions/pan-down-symbolic.svg
 share/icons/hicolor/scalable/actions/pan-end-symbolic-rtl.svg
 share/icons/hicolor/scalable/actions/pan-end-symbolic.svg
diff --git a/x11/py-python-xapp/Makefile b/x11/py-python-xapp/Makefile
index cbabc4c6f6e8..546c55400e77 100644
--- a/x11/py-python-xapp/Makefile
+++ b/x11/py-python-xapp/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	python-xapp
-DISTVERSION=	2.0.2
+DISTVERSION=	2.2.2
 CATEGORIES=	x11 gnome
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 DIST_SUBDIR=	gnome
@@ -13,7 +13,7 @@ LICENSE_FILE=	${WRKSRC}/COPYING
 
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR}
 
-USES=		gnome python:3.5+ shebangfix
+USES=		gnome python shebangfix
 
 USE_GNOME=	pygobject3
 USE_PYTHON=	autoplist distutils
@@ -25,4 +25,7 @@ GH_PROJECT=	python3-xapp
 
 NO_ARCH=	yes
 
+post-patch:
+	@${REINPLACE_CMD} 's|/usr/bin|${PREFIX}/bin|g' ${WRKSRC}/xapp/os.py
+
 .include <bsd.port.mk>
diff --git a/x11/py-python-xapp/distinfo b/x11/py-python-xapp/distinfo
index 1050cdd8e7b6..8c79e0fd8145 100644
--- a/x11/py-python-xapp/distinfo
+++ b/x11/py-python-xapp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1609405572
-SHA256 (gnome/linuxmint-python3-xapp-2.0.2_GH0.tar.gz) = 4f61dde32c7aec5ab2c819e968a2bf0136c9eddcc1356461d516aff40930159f
-SIZE (gnome/linuxmint-python3-xapp-2.0.2_GH0.tar.gz) = 19946
+TIMESTAMP = 1656739980
+SHA256 (gnome/linuxmint-python3-xapp-2.2.2_GH0.tar.gz) = 644b44ee97616096d74fc8a4a104453154fdc1c904679077b13b2e0b9c1b3c21
+SIZE (gnome/linuxmint-python3-xapp-2.2.2_GH0.tar.gz) = 20872
diff --git a/x11/xapp/Makefile b/x11/xapp/Makefile
index c73656128a8e..6c3393afa7b9 100644
--- a/x11/xapp/Makefile
+++ b/x11/xapp/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	xapp
-PORTVERSION=	2.2.12
+PORTVERSION=	2.2.14
 CATEGORIES=	x11 gnome
 DIST_SUBDIR=	gnome
 
diff --git a/x11/xapp/distinfo b/x11/xapp/distinfo
index ffdc06a12f96..e8bc536a1c91 100644
--- a/x11/xapp/distinfo
+++ b/x11/xapp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1656709225
-SHA256 (gnome/linuxmint-xapp-2.2.12_GH0.tar.gz) = 32f21f5d6e88d175a688f0f32e9dc90548a859fd523ab16bb730c6472f5874e0
-SIZE (gnome/linuxmint-xapp-2.2.12_GH0.tar.gz) = 247596
+TIMESTAMP = 1660062501
+SHA256 (gnome/linuxmint-xapp-2.2.14_GH0.tar.gz) = 0c11baccc552a2de29e95eaf1e48ec8cc4c4fd4ec86fc70ce413a4abfbe5b7b9
+SIZE (gnome/linuxmint-xapp-2.2.14_GH0.tar.gz) = 248119
-- 
GitLab