diff --git a/slurm.spec b/slurm.spec
index a103b66..44912b8 100644
--- a/slurm.spec
+++ b/slurm.spec
@@ -1,5 +1,5 @@
 # Upstream tarballs use an additional release number
-%global ups_rel 2
+%global ups_rel 1
 
 %if "%{ups_rel}" == "1"
 %global name_version %{name}-%{version}
@@ -15,12 +15,12 @@
 %endif
 
 Name:           slurm
-Version:        21.08.8
-Release:        4%{?dist}
+Version:        22.05.3
+Release:        1%{?dist}
 Summary:        Simple Linux Utility for Resource Management
 License:        GPLv2 and BSD
 URL:            https://slurm.schedmd.com/
-Source0:        http://www.schedmd.com/download/latest/%{name_version}.tar.bz2
+Source0:        https://download.schedmd.com/slurm/%{name_version}.tar.bz2
 Source1:        slurm.conf
 Source2:        slurmdbd.conf
 Source3:        slurm-sview.desktop
@@ -31,27 +31,27 @@ Source5:        slurm-setuser.in
 Patch0:         slurm_release_version.patch
 
 # Build-related patches
-Patch10:        slurm_perlapi_rpaths.patch
+Patch10:        slurm_check_version.patch
 Patch11:        slurm_html_doc_path.patch
-Patch12:        slurm_without_cray.patch
-Patch13:        slurm_check_version.patch
-Patch14:        slurm_detect_pmix_v4.patch
+Patch12:        slurm_perlapi_rpaths.patch
 
 # Other patches
-Patch20:        slurm_pmix_soname.patch
+Patch20:        slurm_runtime_linking.patch
 Patch21:        slurm_to_python3.patch
 
 BuildRequires:  autoconf
 BuildRequires:  automake
+BuildRequires:  dbus-devel
 BuildRequires:  desktop-file-utils
 BuildRequires:  gcc
 BuildRequires:  make
+BuildRequires:  man2html
 BuildRequires:  perl-devel
 BuildRequires:  perl-ExtUtils-MakeMaker
 BuildRequires:  perl-interpreter
 BuildRequires:  perl-macros
 BuildRequires:  perl-podlators
-%if !0%{?el7}
+%if 0%{?epel} != 7
 BuildRequires:  pkgconf
 %else
 BuildRequires:  pkgconfig
@@ -83,7 +83,7 @@ BuildRequires:  ucx-devel
 %endif
 
 # create slurm-slurmrestd package for Fedora >= 34 and EPEL7/8
-%if (0%{?fedora} >= 34) || 0%{?el7} || 0%{?el8}
+%if (0%{?fedora} >= 34) || (0%{?epel} >= 7)
 BuildRequires:  http-parser-devel
 BuildRequires:  json-c-devel
 BuildRequires:  libjwt-devel
@@ -165,7 +165,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
 Slurm database daemon. Used to accept and process database RPCs and upload
 database changes to slurmctld daemons on each cluster.
 
-%if (0%{?fedora} >= 34) || 0%{?el7} || 0%{?el8}
+%if (0%{?fedora} >= 34) || (0%{?epel} >= 7)
 %package slurmrestd
 Summary: Slurm REST API deamon
 Requires: %{name}%{?_isa} = %{version}-%{release}
@@ -253,14 +253,15 @@ export LDFLAGS="%{build_ldflags} -Wl,-z,lazy"
 %if 0%{?fedora} && %{with ucx}
   --with-ucx=%{_prefix} \
 %endif
+  --enable-pam \
+  --enable-really-no-cray \
   --enable-shared \
   --enable-x11 \
   --disable-static \
   --disable-debug \
-  --disable-developer \
   --disable-salloc-background \
-  --disable-multiple-slurmd \
   --disable-partial_attach \
+  --with-oneapi=no \
   --with-shared-libslurm \
   --without-rpath
 # patch libtool to remove rpaths
@@ -379,7 +380,11 @@ rm -f %{buildroot}%{_libdir}/%{name}/job_submit_defaults.so
 rm -f %{buildroot}%{_libdir}/%{name}/job_submit_logging.so
 rm -f %{buildroot}%{_libdir}/%{name}/job_submit_partition.so
 # remove cray files
+rm -f %{buildroot}%{_libdir}/%{name}/*datawarp*.so
+rm -f %{buildroot}%{_libdir}/%{name}/*cray*.so
 rm -f %{buildroot}%{_mandir}/man5/cray*
+rm -f %{buildroot}%{_sbindir}/capmc*
+rm -f %{buildroot}%{_sbindir}/slurmsmwd*
 # remove perl cruft
 rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/.packlist
 rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/Slurm*.bs
@@ -431,12 +436,13 @@ rm -f %{buildroot}%{_unitdir}/slurmrestd.service
 %{_bindir}/%{name}-setuser
 %{_libdir}/%{name}/accounting_storage_*.so
 %{_libdir}/%{name}/acct_gather_*.so
-%if (0%{?fedora} >= 34) || 0%{?el7} || 0%{?el8}
+%if (0%{?fedora} >= 34) || (0%{?epel} >= 7)
 %{_libdir}/%{name}/auth_jwt.so
 %endif
 %{_libdir}/%{name}/auth_munge.so
 %{_libdir}/%{name}/burst_buffer_lua.so
 %{_libdir}/%{name}/cgroup_v1.so
+%{_libdir}/%{name}/cgroup_v2.so
 %{_libdir}/%{name}/cli_filter_*.so
 %{_libdir}/%{name}/core_spec_none.so
 %{_libdir}/%{name}/cred_*.so
@@ -452,7 +458,6 @@ rm -f %{buildroot}%{_unitdir}/slurmrestd.service
 %{_libdir}/%{name}/mcs_*.so
 %{_libdir}/%{name}/mpi_*.so
 %{_libdir}/%{name}/node_features_*.so
-%{_libdir}/%{name}/openapi_*.so
 %{_libdir}/%{name}/power_none.so
 %{_libdir}/%{name}/preempt_*.so
 %{_libdir}/%{name}/prep_script.so
@@ -495,6 +500,7 @@ rm -f %{buildroot}%{_unitdir}/slurmrestd.service
 %{_mandir}/man5/helpers.conf.5*
 %{_mandir}/man5/job_container.conf.5*
 %{_mandir}/man5/knl.conf.5*
+%{_mandir}/man5/mpi.conf.5*
 %{_mandir}/man5/nonstop.conf.5*
 %{_mandir}/man5/oci.conf.5*
 %{_mandir}/man5/slurm.conf.5*
@@ -532,9 +538,7 @@ rm -f %{buildroot}%{_unitdir}/slurmrestd.service
 # ---------
 
 %files doc
-%dir %{_docdir}/%{name}
-%dir %{_docdir}/%{name}/html
-%{_docdir}/%{name}/html/*
+%{_docdir}
 
 # ---------
 # Slurm-gui
@@ -620,11 +624,8 @@ fi
 
 %if (0%{?fedora} >= 34) || 0%{?el7} || 0%{?el8}
 %files slurmrestd
-%{_libdir}/%{name}/openapi_dbv0_0_36.so
-%{_libdir}/%{name}/openapi_v0_0_36.so
-%{_libdir}/%{name}/openapi_v0_0_35.so
-%{_libdir}/%{name}/rest_auth_jwt.so
-%{_libdir}/%{name}/rest_auth_local.so
+%{_libdir}/%{name}/openapi*.so
+%{_libdir}/%{name}/rest*.so
 %{_sbindir}/slurmrestd
 %{_unitdir}/slurmrestd.service
 %endif
@@ -748,6 +749,10 @@ fi
 %systemd_postun_with_restart slurmdbd.service
 
 %changelog
+* Mon Sep 5 2022 Philip Kovacs <pkfed@fedoraproject.org> - 22.05.3-1
+- Thanks Cristian Le (fedora@lecris.me) for his contributions
+- Update to 22.05.3
+
 * Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 21.08.8-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
 
diff --git a/slurm_detect_pmix_v4.patch b/slurm_detect_pmix_v4.patch
deleted file mode 100644
index 032fb79..0000000
--- a/slurm_detect_pmix_v4.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/auxdir/x_ac_pmix.m4 b/auxdir/x_ac_pmix.m4
-index f40d39fa8e..f5221bf8cf 100755
---- a/auxdir/x_ac_pmix.m4
-+++ b/auxdir/x_ac_pmix.m4
-@@ -188,7 +188,8 @@ AC_DEFUN([X_AC_PMIX],
- 
-   AM_CONDITIONAL(HAVE_PMIX, [test $_x_ac_pmix_v1_found = "1"] ||
-                 [test $_x_ac_pmix_v2_found = "1"] ||
--                [test $_x_ac_pmix_v3_found = "1"] )
-+                [test $_x_ac_pmix_v3_found = "1"] ||
-+                [test $_x_ac_pmix_v4_found = "1"])
-   AM_CONDITIONAL(HAVE_PMIX_V1, [test $_x_ac_pmix_v1_found = "1"])
-   AM_CONDITIONAL(HAVE_PMIX_V2, [test $_x_ac_pmix_v2_found = "1"])
-   AM_CONDITIONAL(HAVE_PMIX_V3, [test $_x_ac_pmix_v3_found = "1"])
diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch
deleted file mode 100644
index 633dd81..0000000
--- a/slurm_pmix_soname.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c
-index 69c5191112..1d0080dd77 100644
---- a/src/plugins/mpi/pmix/mpi_pmix.c
-+++ b/src/plugins/mpi/pmix/mpi_pmix.c
-@@ -87,6 +87,8 @@ const char plugin_type[] = "mpi/pmix_v1";
- const char plugin_type[] = "mpi/pmix_v2";
- #elif (HAVE_PMIX_VER == 3)
- const char plugin_type[] = "mpi/pmix_v3";
-+#elif (HAVE_PMIX_VER == 4)
-+const char plugin_type[] = "mpi/pmix_v4";
- #endif
- 
- const uint32_t plugin_version = SLURM_VERSION_NUMBER;
-@@ -112,8 +114,10 @@ static void *_libpmix_open(void)
- 	xstrfmtcat(full_path, "%s/", PMIXP_V2_LIBPATH);
- #elif defined PMIXP_V3_LIBPATH
- 	xstrfmtcat(full_path, "%s/", PMIXP_V3_LIBPATH);
-+#elif defined PMIXP_V4_LIBPATH
-+	xstrfmtcat(full_path, "%s/", PMIXP_V4_LIBPATH);
- #endif
--	xstrfmtcat(full_path, "libpmix.so");
-+	xstrfmtcat(full_path, "libpmix.so.2");
- 
- 	lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
- 	xfree(full_path);
-diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
-index 44013246e3..96c40b5c3a 100644
---- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
-+++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
-@@ -169,7 +169,7 @@ static int _load_ucx_lib()
- 	 * we have from autoconf
- 	 */
- 	char *full_path = NULL;
--	xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH);
-+	xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH);
- 	_ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
- 	xfree(full_path);
- 	if (_ucx_lib_handler) {
-@@ -180,7 +180,7 @@ static int _load_ucx_lib()
- 	 * known by dynamic linker.
- 	 */
- #endif
--	_ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL);
-+	_ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL);
- 	if (!_ucx_lib_handler) {
- 		char *err = dlerror();
- 		PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown");
diff --git a/slurm_runtime_linking.patch b/slurm_runtime_linking.patch
new file mode 100644
index 0000000..e4435e9
--- /dev/null
+++ b/slurm_runtime_linking.patch
@@ -0,0 +1,35 @@
+diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c
+index 626065f269..d2623695be 100644
+--- a/src/plugins/mpi/pmix/mpi_pmix.c
++++ b/src/plugins/mpi/pmix/mpi_pmix.c
+@@ -137,7 +137,7 @@ static void *_libpmix_open(void)
+ #elif defined PMIXP_V4_LIBPATH
+ 	xstrfmtcat(full_path, "%s/", PMIXP_V4_LIBPATH);
+ #endif
+-	xstrfmtcat(full_path, "libpmix.so");
++	xstrfmtcat(full_path, "libpmix.so.2");
+ 
+ 	lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+ 	xfree(full_path);
+diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
+index 44013246e3..96c40b5c3a 100644
+--- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
++++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
+@@ -169,7 +169,7 @@ static int _load_ucx_lib()
+ 	 * we have from autoconf
+ 	 */
+ 	char *full_path = NULL;
+-	xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH);
++	xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH);
+ 	_ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+ 	xfree(full_path);
+ 	if (_ucx_lib_handler) {
+@@ -180,7 +180,7 @@ static int _load_ucx_lib()
+ 	 * known by dynamic linker.
+ 	 */
+ #endif
+-	_ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL);
++	_ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL);
+ 	if (!_ucx_lib_handler) {
+ 		char *err = dlerror();
+ 		PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown");
diff --git a/slurm_without_cray.patch b/slurm_without_cray.patch
deleted file mode 100644
index f917445..0000000
--- a/slurm_without_cray.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/contribs/Makefile.am b/contribs/Makefile.am
-index f08b1b0440..110dd03757 100644
---- a/contribs/Makefile.am
-+++ b/contribs/Makefile.am
-@@ -1 +1 @@
--SUBDIRS = cray lua nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque
-+SUBDIRS = lua nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque
-diff --git a/src/plugins/burst_buffer/Makefile.am b/src/plugins/burst_buffer/Makefile.am
-index e55b18af47..3c4cf98f2c 100644
---- a/src/plugins/burst_buffer/Makefile.am
-+++ b/src/plugins/burst_buffer/Makefile.am
-@@ -3,5 +3,5 @@
- SUBDIRS = common
- 
- if WITH_JSON_PARSER
--SUBDIRS += datawarp lua
-+SUBDIRS += lua
- endif
-diff --git a/src/plugins/core_spec/Makefile.am b/src/plugins/core_spec/Makefile.am
-index 44b1ed67c0..f06bc541d7 100644
---- a/src/plugins/core_spec/Makefile.am
-+++ b/src/plugins/core_spec/Makefile.am
-@@ -1,3 +1,3 @@
- # Makefile for core specialization plugins
- 
--SUBDIRS = cray_aries none
-+SUBDIRS = none
-diff --git a/src/plugins/job_submit/Makefile.am b/src/plugins/job_submit/Makefile.am
-index e393bcfb1c..b98cf2e000 100644
---- a/src/plugins/job_submit/Makefile.am
-+++ b/src/plugins/job_submit/Makefile.am
-@@ -2,7 +2,6 @@
- 
- SUBDIRS = \
- 	all_partitions \
--	cray_aries \
- 	defaults \
- 	logging \
- 	lua \
-diff --git a/src/plugins/mpi/Makefile.am b/src/plugins/mpi/Makefile.am
-index 4d055e2030..1a44dfb2ab 100644
---- a/src/plugins/mpi/Makefile.am
-+++ b/src/plugins/mpi/Makefile.am
-@@ -1,6 +1,6 @@
- # Makefile for mpi plugins
- 
--SUBDIRS = cray_shasta none pmi2
-+SUBDIRS = none pmi2
- if HAVE_PMIX
- SUBDIRS += pmix
- endif
-diff --git a/src/plugins/node_features/Makefile.am b/src/plugins/node_features/Makefile.am
-index b065610c2b..c3745f42b6 100644
---- a/src/plugins/node_features/Makefile.am
-+++ b/src/plugins/node_features/Makefile.am
-@@ -1,3 +1,3 @@
- # Makefile for node_features plugins
- 
--SUBDIRS = helpers knl_cray knl_generic
-+SUBDIRS = helpers knl_generic
-diff --git a/src/plugins/power/Makefile.am b/src/plugins/power/Makefile.am
-index ccde44c322..c6171740c1 100644
---- a/src/plugins/power/Makefile.am
-+++ b/src/plugins/power/Makefile.am
-@@ -1,3 +1,3 @@
- # Makefile for power management plugins
- 
--SUBDIRS = common cray_aries none
-+SUBDIRS = common none
-diff --git a/src/plugins/select/Makefile.am b/src/plugins/select/Makefile.am
-index 38bae0ff5c..ca7133f43f 100644
---- a/src/plugins/select/Makefile.am
-+++ b/src/plugins/select/Makefile.am
-@@ -1,7 +1,7 @@
- # Makefile for node selection plugins
- 
- # NOTE: other must be in the list before cray_aries lest the build break
--SUBDIRS = other cons_common cons_res cons_tres cray_aries linear
-+SUBDIRS = other cons_common cons_res cons_tres linear
- 
- # Each plugin here needs a plugin_id.
- # Here are the current plugin_ids for each plugin.
-diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am
-index 365f5b8d93..dc56a01a55 100644
---- a/src/plugins/switch/Makefile.am
-+++ b/src/plugins/switch/Makefile.am
-@@ -1,7 +1,3 @@
- # Makefile for switch plugins
- 
- SUBDIRS = none
--
--if WITH_SWITCH_CRAY_ARIES
--SUBDIRS += cray_aries
--endif
-diff --git a/src/plugins/task/Makefile.am b/src/plugins/task/Makefile.am
-index f79282f3e6..356cdcd500 100644
---- a/src/plugins/task/Makefile.am
-+++ b/src/plugins/task/Makefile.am
-@@ -1,6 +1,6 @@
- # Makefile for task plugins
- 
--SUBDIRS = affinity cray_aries none
-+SUBDIRS = affinity none
- 
- if WITH_CGROUP
- SUBDIRS += cgroup
diff --git a/sources b/sources
index b969990..9067673 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (slurm-21.08.8-2.tar.bz2) = 04f28ed007548367b065ced9da7dc633043974980f0a0593d9e0bb0a2058e81ab34c4a5da8161f04af9209f8968df5b859621008e72d20406f674be9c91cf06c
+SHA512 (slurm-22.05.3.tar.bz2) = a500fb657f7d4d3d063307e176e26e537962434ff73ad8d13e16c34c70e94916fdab4e08e23d40aedec7edd86be996d2366e82fcb952c83f5498e59ca47c3f21