diff --git a/.glusterfs.metadata b/.glusterfs.metadata
index e9b5eaa..d7e6468 100644
--- a/.glusterfs.metadata
+++ b/.glusterfs.metadata
@@ -1 +1 @@
-e7d8cfd61cb9f1c3e9b0434f61ce6f28890c9c5b  SOURCES/glusterfs-10.3.tar.gz
+e2570913fa3a8e1cac4e113eae3ba6ffddca692b  SOURCES/glusterfs-11.0rc0.tar.gz
diff --git a/SPECS/glusterfs.spec b/SPECS/glusterfs.spec
index 0ac38e9..11cebf8 100644
--- a/SPECS/glusterfs.spec
+++ b/SPECS/glusterfs.spec
@@ -3,7 +3,7 @@
 %global _for_fedora_koji_builds 1
 
 # uncomment and add '%' to use the prereltag for pre-releases
-#global prereltag rc0
+%global prereltag rc0
 
 ##-----------------------------------------------------------------------------
 ## All argument definitions should be placed here and keep them sorted
@@ -55,7 +55,7 @@
 
 # linux-io_uring
 # If you wish to compile an rpm without linux-io_uring support...
-# rpmbuild -ta  glusterfs-9.1.tar.gz --disable-linux-io_uring
+# rpmbuild -ta  @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without linux-io_uring
 %{?_without_linux_io_uring:%global _without_linux_io_uring --disable-linux-io_uring}
 
 # Disable linux-io_uring on unsupported distros.
@@ -225,6 +225,10 @@
 %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$
 %endif
 
+%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
+%if "%{bashcompdir}" == ""
+%global bashcompdir ${sysconfdir}/bash_completion.d
+%endif
 
 ##-----------------------------------------------------------------------------
 ## All package definitions should be placed here and keep them sorted
@@ -232,7 +236,7 @@
 Summary:          Distributed File System
 %if ( 0%{_for_fedora_koji_builds} )
 Name:             glusterfs
-Version:          10.3
+Version:          11.0
 Release:          %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}
 %else
 Name:             @PACKAGE_NAME@
@@ -242,7 +246,7 @@ Release:          0.@PACKAGE_RELEASE@%{?dist}.1
 License:          GPLv2 or LGPLv3+
 URL:              http://docs.gluster.org/
 %if ( 0%{_for_fedora_koji_builds} )
-Source0:          http://download.gluster.org/pub/gluster/%{name}/10/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz
+Source0:          http://download.gluster.org/pub/gluster/%{name}/11/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz
 Source1:          glusterd.sysconfig
 Source2:          glusterfsd.sysconfig
 Source7:          glusterfsd.service
@@ -277,7 +281,7 @@ BuildRequires:    libtsan
 BuildRequires:    bison flex
 BuildRequires:    gcc make libtool
 BuildRequires:    ncurses-devel readline-devel
-BuildRequires:    libxml2-devel openssl-devel
+BuildRequires:    libxml2-devel openssl-devel openssl
 BuildRequires:    libaio-devel libacl-devel
 BuildRequires:    python%{_pythonver}-devel
 %if ( 0%{!?_without_tcmalloc:1} )
@@ -339,8 +343,14 @@ and client framework.
 
 %package cli
 Summary:          GlusterFS CLI
+%if ( ! (0%{?rhel} && 0%{?rhel} < 7) )
+BuildRequires:    pkgconfig(bash-completion)
+# bash-completion >= 1.90 satisfies this requirement.
+# If it is not available, the condition can be adapted
+# and the completion script will be installed in the backwards compatible
+# %{sysconfdir}/bash_completion.d
+%endif
 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
-Requires:         libglusterd0%{?_isa} = %{version}-%{release}
 
 %description cli
 GlusterFS is a distributed file-system capable of scaling to several
@@ -463,9 +473,8 @@ Requires:         python%{_pythonver}-gluster = %{version}-%{release}
 
 Requires:         rsync
 Requires:         util-linux
-%if ( 0%{?rhel} && ( ( 0%{?rhel} == 8 && 0%{?rhel_minor_version} >= 3 ) || 0%{?rhel} >= 9 ) )
 Requires:         tar
-%endif
+
 # required for setting selinux bools
 %if ( 0%{?rhel} && 0%{?rhel} >= 8 )
 Requires(post):      policycoreutils-python-utils
@@ -662,21 +671,6 @@ Much of the code in GlusterFS is in user space and easily manageable.
 
 This package provides libgfxdr.so.
 
-%package -n libglusterd0
-Summary:          GlusterFS libglusterd library
-Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
-Obsoletes:        %{name}-libs <= %{version}-%{release}
-
-%description -n libglusterd0
-GlusterFS is a distributed file-system capable of scaling to several
-petabytes. It aggregates various storage bricks over TCP/IP interconnect
-into one large parallel network filesystem. GlusterFS is one of the
-most sophisticated file systems in terms of features and extensibility.
-It borrows a powerful concept called Translators from GNU Hurd kernel.
-Much of the code in GlusterFS is in user space and easily manageable.
-
-This package provides the libglusterd library
-
 %package -n python%{_pythonver}-gluster
 Summary:          GlusterFS python library
 Requires:         python%{_pythonver}
@@ -742,10 +736,10 @@ like Pacemaker.
 %if ( 0%{!?_without_server:1} )
 %package server
 Summary:          Distributed file-system server
-Requires:         %{name} = %{version}-%{release}
-Requires:         %{name}-libs = %{version}-%{release}
-Requires:         %{name}-cli = %{version}-%{release}
-Requires:         libgfchangelog0 = %{version}-%{release}
+Requires:         %{name}%{?_isa} = %{version}-%{release}
+Requires:         %{name}-cli%{?_isa} = %{version}-%{release}
+Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
+Requires:         libgfchangelog0%{?_isa} = %{version}-%{release}
 %if ( 0%{?fedora} && 0%{?fedora} >= 30  || ( 0%{?rhel} && 0%{?rhel} >= 8 ) )
 Requires:         glusterfs-selinux >= 0.1.0-2
 %endif
@@ -1005,10 +999,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid
 find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs
 %endif
 
-## Install bash completion for cli
-install -p -m 0744 -D extras/command-completion/gluster.bash \
-    %{buildroot}%{_sysconfdir}/bash_completion.d/gluster
-
 %clean
 rm -rf %{buildroot}
 
@@ -1032,7 +1022,10 @@ exit 0
 %if ( 0%{!?_without_server:1} )
 %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 %post ganesha
-semanage boolean -m ganesha_use_fusefs --on
+# first install
+if [ $1 -eq 1 ]; then
+  %selinux_set_booleans ganesha_use_fusefs=1
+fi
 exit 0
 %endif
 %endif
@@ -1040,7 +1033,9 @@ exit 0
 %if ( 0%{!?_without_georeplication:1} )
 %post geo-replication
 %if ( 0%{?rhel} && 0%{?rhel} >= 8 )
-%selinux_set_booleans %{selinuxbooleans}
+if [ $1 -eq 1 ]; then
+  %selinux_set_booleans %{selinuxbooleans}
+fi
 %endif
 if [ $1 -ge 1 ]; then
     %systemd_postun_with_restart glusterd
@@ -1063,9 +1058,6 @@ exit 0
 %post -n libgfxdr0
 /sbin/ldconfig
 
-%post -n libglusterd0
-/sbin/ldconfig
-
 %if ( 0%{!?_without_server:1} )
 %post server
 # Legacy server
@@ -1212,29 +1204,32 @@ exit 0
 %if ( 0%{!?_without_server:1} )
 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 %postun ganesha
-semanage boolean -m ganesha_use_fusefs --off
+if [ $1 -eq 0 ]; then
+  # use the value of ganesha_use_fusefs from before glusterfs-ganesha was installed
+  %selinux_unset_booleans ganesha_use_fusefs=1
+fi
 exit 0
 %endif
 %endif
 
-##-----------------------------------------------------------------------------
-## All %%trigger should be placed here and keep them sorted
-##
-%if ( 0%{!?_without_server:1} )
-%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
-%trigger ganesha -- selinux-policy-targeted
-semanage boolean -m ganesha_use_fusefs --on
+%if ( 0%{!?_without_georeplication:1} )
+%postun geo-replication
+%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
+if [ $1 -eq 0 ]; then
+  %selinux_unset_booleans %{selinuxbooleans}
+fi
 exit 0
 %endif
 %endif
 
 ##-----------------------------------------------------------------------------
-## All %%triggerun should be placed here and keep them sorted
+## All %%trigger should be placed here and keep them sorted
 ##
 %if ( 0%{!?_without_server:1} )
 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
-%triggerun ganesha -- selinux-policy-targeted
-semanage boolean -m ganesha_use_fusefs --off
+# ensure ganesha_use_fusefs is on in case of policy mode switch (eg. mls->targeted)
+%triggerin ganesha -- selinux-policy-targeted
+semanage boolean -m ganesha_use_fusefs --on -S targeted
 exit 0
 %endif
 %endif
@@ -1314,7 +1309,7 @@ exit 0
 %files cli
 %{_sbindir}/gluster
 %{_mandir}/man8/gluster.8*
-%{_sysconfdir}/bash_completion.d/gluster
+%{bashcompdir}/gluster.bash
 
 %files cloudsync-plugins
 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
@@ -1451,10 +1446,6 @@ exit 0
 %files -n libgfxdr0
 %{_libdir}/libgfxdr.so.*
 
-%files -n libglusterd0
-%{_libdir}/libglusterd.so.*
-%exclude %{_libdir}/libglusterd.so
-
 %files -n python%{_pythonver}-gluster
 # introducing glusterfs module in site packages.
 # so that all other gluster submodules can reside in the same namespace.
@@ -1546,6 +1537,7 @@ exit 0
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix*
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so
+     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/simple-quota.so
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota*
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so
      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so
@@ -1669,6 +1661,10 @@ exit 0
 %endif
 
 %changelog
+* Wed Nov 23 2022 Niels de Vos <ndevos@redhat.com> - 11.0-0.1.rc0
+- GlusterFS 11.0 Release Candidate 0
+- include spec changes from upstream
+
 * Wed Sep 21 2022 Niels de Vos <ndevos@redhat.com> - 10.3-1
 - GlusterFS 10.3 GA