diff --git a/.glusterfs.metadata b/.glusterfs.metadata
index e83950e..e54d405 100644
--- a/.glusterfs.metadata
+++ b/.glusterfs.metadata
@@ -1 +1 @@
-69955a320771b0ba827aa489b7f5ca8b603fca64  SOURCES/glusterfs-8.3.tar.gz
+cbef6d91219b12b9d29eaab3da302e453b25bba4  SOURCES/glusterfs-9.0rc0.tar.gz
diff --git a/SPECS/glusterfs.spec b/SPECS/glusterfs.spec
index 531bffa..8797fef 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 qa3
+%global prereltag rc0
 
 ##-----------------------------------------------------------------------------
 ## All argument definitions should be placed here and keep them sorted
@@ -46,7 +46,7 @@
 # gnfs
 # if you wish to compile an rpm with the legacy gNFS server xlator
 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs
-%{?_without_gnfs:%global _with_gnfs --disable-gnfs}
+%{?_with_gnfs:%global _with_gnfs --enable-gnfs}
 
 # ipv6default
 # if you wish to compile an rpm with IPv6 default...
@@ -111,6 +111,12 @@
 ## All %%global definitions should be placed here and keep them sorted
 ##
 
+# selinux booleans whose defalut value needs modification
+# these booleans will be consumed by "%%selinux_set_booleans" macro.
+%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
+%global selinuxbooleans rsync_full_access=1 rsync_client=1
+%endif
+
 %if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 %global _with_systemd true
 %endif
@@ -205,8 +211,8 @@
 Summary:          Distributed File System
 %if ( 0%{_for_fedora_koji_builds} )
 Name:             glusterfs
-Version:          8.3
-Release:          1%{?dev:%{dev}}%{?dist}
+Version:          9.0
+Release:          0.1%{?prereltag:.%{prereltag}}%{?dist}
 %else
 Name:             @PACKAGE_NAME@
 Version:          @PACKAGE_VERSION@
@@ -215,7 +221,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}/8/%{version}%{?dev}/%{name}-%{version}%{?dev}.tar.gz
+Source0:          http://download.gluster.org/pub/gluster/%{name}/8/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz
 Source1:          glusterd.sysconfig
 Source2:          glusterfsd.sysconfig
 Source7:          glusterfsd.service
@@ -378,7 +384,7 @@ Requires:         %{name}-server%{?_isa} = %{version}-%{release}
 Requires:         nfs-ganesha-selinux >= 2.7.6
 Requires:         nfs-ganesha-gluster >= 2.7.6
 Requires:         pcs >= 0.10.0
-Requires:         resource-agents >= 4.1.0
+Requires:         resource-agents >= 4.2.0
 Requires:         dbus
 
 %if ( 0%{?rhel} && 0%{?rhel} == 6 )
@@ -425,6 +431,17 @@ 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
+Requires(postun):    policycoreutils-python-utils
+Requires:            selinux-policy-targeted
+Requires(post):      selinux-policy-targeted
+BuildRequires:       selinux-policy-devel
+%endif
 
 %description geo-replication
 GlusterFS is a distributed file-system capable of scaling to several
@@ -657,7 +674,8 @@ Requires:         %{name}-server = %{version}-%{release}
 ## thin provisioning support
 Requires:         lvm2 >= 2.02.89
 Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
-Requires:         python%{_pythonver} attr dbench file git libacl-devel net-tools
+Requires:         python%{_pythonver}
+Requires:         attr dbench file git libacl-devel net-tools
 Requires:         nfs-utils xfsprogs yajl psmisc bc
 
 %description regression-tests
@@ -696,6 +714,9 @@ Requires:         %{name} = %{version}-%{release}
 Requires:         %{name}-libs = %{version}-%{release}
 Requires:         %{name}-cli = %{version}-%{release}
 Requires:         libgfchangelog0 = %{version}-%{release}
+%if ( 0%{?fedora} && 0%{?fedora} >= 30  || ( 0%{?rhel} && 0%{?rhel} >= 8 ) )
+Requires:         glusterfs-selinux >= 0.1.0-2
+%endif
 # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse
 Requires:         %{name}-fuse = %{version}-%{release}
 # self-heal daemon, rebalance, nfs-server etc. are actually clients
@@ -750,7 +771,6 @@ This package provides the glusterfs server daemon.
 %package thin-arbiter
 Summary:          GlusterFS thin-arbiter module
 Requires:         %{name}%{?_isa} = %{version}-%{release}
-Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
 
 %description thin-arbiter
@@ -985,6 +1005,9 @@ exit 0
 
 %if ( 0%{!?_without_georeplication:1} )
 %post geo-replication
+%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
+%selinux_set_booleans %{selinuxbooleans}
+%endif
 if [ $1 -ge 1 ]; then
     %systemd_postun_with_restart glusterd
 fi
@@ -1612,7 +1635,10 @@ exit 0
 %endif
 
 %changelog
-* Wed Dec 1 2020 Niels de Vos <ndevos@redhat.com> - 8.3-1
+* Mon Jan 11 2021 Niels de Vos <ndevos@redhat.com> - 9.0-0.1.rc0
+- 1st Release Candidate for GlusterFS 9.0
+
+* Tue Dec 1 2020 Niels de Vos <ndevos@redhat.com> - 8.3-1
 - 8.3 GA
 
 * Thu Nov 5 2020  Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 8.2-4