From c610d7359b5c7f2068e36699f60d4d32850d045e Mon Sep 17 00:00:00 2001
From: nazunalika <tucklesepk@gmail.com>
Date: Thu, 8 Apr 2021 20:50:23 -0700
Subject: [PATCH] combination

---
 SOURCES/RPM-GPG-KEY-rockyofficial    |  29 ++++++
 SOURCES/RPM-GPG-KEY-rockytesting     |  29 ++++++
 SOURCES/Rocky-AppStream.repo         |  17 ++++
 SOURCES/Rocky-BaseOS.repo            |  17 ++++
 SOURCES/Rocky-ContinuousRelease.repo |  24 +++++
 SOURCES/Rocky-Debuginfo.repo         |  11 +++
 SOURCES/Rocky-Devel.repo             |  17 ++++
 SOURCES/Rocky-Extras.repo            |  17 ++++
 SOURCES/Rocky-FastTrack.repo         |  17 ++++
 SOURCES/Rocky-HighAvailability.repo  |  17 ++++
 SOURCES/Rocky-Media.repo             |  22 +++++
 SOURCES/Rocky-Plus.repo              |  17 ++++
 SOURCES/Rocky-PowerTools.repo        |  17 ++++
 SOURCES/Rocky-ResilientStorage.repo  |  17 ++++
 SOURCES/Rocky-Sources.repo           |  30 ++++++
 SPECS/rocky-release.spec             | 135 ++++++++++++++++++++++-----
 id_verify                            |   2 +
 17 files changed, 413 insertions(+), 22 deletions(-)
 create mode 100644 SOURCES/RPM-GPG-KEY-rockyofficial
 create mode 100644 SOURCES/RPM-GPG-KEY-rockytesting
 create mode 100644 SOURCES/Rocky-AppStream.repo
 create mode 100644 SOURCES/Rocky-BaseOS.repo
 create mode 100644 SOURCES/Rocky-ContinuousRelease.repo
 create mode 100644 SOURCES/Rocky-Debuginfo.repo
 create mode 100644 SOURCES/Rocky-Devel.repo
 create mode 100644 SOURCES/Rocky-Extras.repo
 create mode 100644 SOURCES/Rocky-FastTrack.repo
 create mode 100644 SOURCES/Rocky-HighAvailability.repo
 create mode 100644 SOURCES/Rocky-Media.repo
 create mode 100644 SOURCES/Rocky-Plus.repo
 create mode 100644 SOURCES/Rocky-PowerTools.repo
 create mode 100644 SOURCES/Rocky-ResilientStorage.repo
 create mode 100644 SOURCES/Rocky-Sources.repo
 create mode 100644 id_verify

diff --git a/SOURCES/RPM-GPG-KEY-rockyofficial b/SOURCES/RPM-GPG-KEY-rockyofficial
new file mode 100644
index 0000000..28ce769
--- /dev/null
+++ b/SOURCES/RPM-GPG-KEY-rockyofficial
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGAofzYBEAC6yS1azw6f3wmaVd//3aSy6O2c9+jeetulRQvg2LvhRRS1eNqp
+/x9tbBhfohu/tlDkGpYHV7diePgMml9SZDy1sKlI3tDhx6GZ3xwF0fd1vWBZpmNk
+D9gRkUmYBeLotmcXQZ8ZpWLicosFtDpJEYpLUhuIgTKwt4gxJrHvkWsGQiBkJxKD
+u3/RlL4IYA3Ot9iuCBflc91EyAw1Yj0gKcDzbOqjvlGtS3ASXgxPqSfU0uLC9USF
+uKDnP2tcnlKKGfj0u6VkqISliSuRAzjlKho9Meond+mMIFOTT6qp4xyu+9Dj3IjZ
+IC6rBXRU3xi8z0qYptoFZ6hx70NV5u+0XUzDMXdjQ5S859RYJKijiwmfMC7gZQAf
+OkdOcicNzen/TwD/slhiCDssHBNEe86Wwu5kmDoCri7GJlYOlWU42Xi0o1JkVltN
+D8ZId+EBDIms7ugSwGOVSxyZs43q2IAfFYCRtyKHFlgHBRe9/KTWPUrnsfKxGJgC
+Do3Yb63/IYTvfTJptVfhQtL1AhEAeF1I+buVoJRmBEyYKD9BdU4xQN39VrZKziO3
+hDIGng/eK6PaPhUdq6XqvmnsZ2h+KVbyoj4cTo2gKCB2XA7O2HLQsuGduHzYKNjf
+QR9j0djjwTrsvGvzfEzchP19723vYf7GdcLvqtPqzpxSX2FNARpCGXBw9wARAQAB
+tDNSZWxlYXNlIEVuZ2luZWVyaW5nIDxpbmZyYXN0cnVjdHVyZUByb2NreWxpbnV4
+Lm9yZz6JAk4EEwEIADgWIQRwUcRwqSn0VM6+N7cVr12sbXRaYAUCYCh/NgIbDwUL
+CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAVr12sbXRaYLFmEACSMvoO1FDdyAbu
+1m6xEzDhs7FgnZeQNzLZECv2j+ggFSJXezlNVOZ5I1I8umBan2ywfKQD8M+IjmrW
+k9/7h9i54t8RS/RN7KNo7ECGnKXqXDPzBBTs1Gwo1WzltAoaDKUfXqQ4oJ4aCP/q
+/XPVWEzgpJO1XEezvCq8VXisutyDiXEjjMIeBczxb1hbamQX+jLTIQ1MDJ4Zo1YP
+zlUqrHW434XC2b1/WbSaylq8Wk9cksca5J+g3FqTlgiWozyy0uxygIRjb6iTzKXk
+V7SYxeXp3hNTuoUgiFkjh5/0yKWCwx7aQqlHar9GjpxmBDAO0kzOlgtTw//EqTwR
+KnYZLig9FW0PhwvZJUigr0cvs/XXTTb77z/i/dfHkrjVTTYenNyXogPtTtSyxqca
+61fbPf0B/S3N43PW8URXBRS0sykpX4SxKu+PwKCqf+OJ7hMEVAapqzTt1q9T7zyB
+QwvCVx8s7WWvXbs2d6ZUrArklgjHoHQcdxJKdhuRmD34AuXWCLW+gH8rJWZpuNl3
++WsPZX4PvjKDgMw6YMcV7zhWX6c0SevKtzt7WP3XoKDuPhK1PMGJQqQ7spegGB+5
+DZvsJS48Ip0S45Qfmj82ibXaCBJHTNZE8Zs+rdTjQ9DS5qvzRA1sRA1dBb/7OLYE
+JmeWf4VZyebm+gc50szsg6Ut2yT8hw==
+=AiP8
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/SOURCES/RPM-GPG-KEY-rockytesting b/SOURCES/RPM-GPG-KEY-rockytesting
new file mode 100644
index 0000000..d06900d
--- /dev/null
+++ b/SOURCES/RPM-GPG-KEY-rockytesting
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGAof3sBEAC50QnXSLxhE+n0gZkX5d5zyBO+SyblfEye9KGf/nMFRu0nPnhO
+y0WlkP40fg2di9iKlTtvIWJfxs2+7PqA9wcU4vnXJpF5MIGurmDKRhBG07v8zMCg
+aU99c9SWQ+76FvomoVzdfj5sSYHfcqD7gRm6VeUlmVv1twqXBm9bfIIF/skXBS9Y
+Gld1py9zSzWgjkT2fUukV9P9FaUuWu6Sbz4wD/Gr+zaSbobonH7zcQjAMbNuJgD1
+diRL7kS+K8QPEPN94IrWJyFegjRzed0e6FAAHqx2Qlrd/09/Tvlxi+yr7A+FpkjF
+41LWg58MZ78letMqgLJI84Ui5ZqUUNJlOF2likQo85yIUV4shlKSgrVd1xC76pxm
+yLWPxcluyS9AdD1tNqW+vIAcQX7V6WY0Pg4A7rAqi+hhXLNwuckPoOGWkkcMIfXH
+ykHsNp9S7YFqi5QdNaw5NciVHIJWXfgDTyGHf+IPNe5HKZJHU+HAmdoPAO7dSWyZ
+tUDLNog+ssvoIcLz8ZzODS2WO9DsiJ0U7qZen+erto+fri17fHi3mRXGApnAWoBM
+1eTWbXk3xV2q4Xcst9buCAWWoX1G7XYtjAKNLJ6w6HoN4nN+yyot6fNdd8nLEXCR
+huPM1gtRqUj6qpTxcUqSRsyb7wE34N+XO1OE9WUJMDauJLhllYhZqbRBSwARAQAB
+tDNSZWxlYXNlIEVuZ2luZWVyaW5nIDxpbmZyYXN0cnVjdHVyZUByb2NreWxpbnV4
+Lm9yZz6JAk4EEwEIADgWIQQJGkQEfD2LejMfXhhUieQru+LBCAUCYCh/ewIbDwUL
+CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBUieQru+LBCMVvD/0cJzEtybgN7hPW
+ZHwOVmc0ovgHHpsKJJjY6XpmEqTbPhGiq7ZklxMweHh3MBWymcGaJJZH+8HIwGfD
+m1DrhllJ4ddSz4y27fqbwfuRLx4BexwanxHN2jfp1q2E8KhAbtJYuZHEsChZHGI7
+JCbKYr3h0wat2GSZ9oM2Bc79hoJ73h73nXKLQrGwkRP52RxJA23sSwJp408tPi++
+3kaScIF9Ji+jkXIgX9yCzrBAxmn4r0qOO8x/F/m1xDmLVwRdvKBNvtA9xOH4tQco
+rGu11sDvB6WdlNYyA2yFjbHBPexTBLLovNq45jT7o6DkZyj1ej7D5xXfE7nOA1KF
+sGxoT0Xo1GekIkF17A3EPl8ijw3PJcfF99s+NFE5z9PK5V2nRSelv3AfiL89iIZG
+wcCqRijg/DxWQPNP952wow1MRWZKd6cSFejS+sKYJueH9IVkxxIPr0YRQQi3BD6I
+93Fug8dTLWE6QSIOlrMcvXQZhty57b0WEOzVRLF8j46KOqEN4w3CrrJ3iFKR2ksX
+YeK0Lz+Zm6gVmEgADkLHamQxEU8KQLsLhYh42/qbBicBXjQ7Zt6Y4Y48cUzThfaK
+p0Iy+QGxbC0LMpmnx8arnOh0QLxGkEnCNggoupQI3ql+QYoUA+k0FUlv3lHC1vY8
+sdkkxYa8srjZAmmaO+RoMqB1P38URg==
+=kXX3
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/SOURCES/Rocky-AppStream.repo b/SOURCES/Rocky-AppStream.repo
new file mode 100644
index 0000000..e405722
--- /dev/null
+++ b/SOURCES/Rocky-AppStream.repo
@@ -0,0 +1,17 @@
+# Rocky-AppStream.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[appstream]
+name=Rocky Linux $releasever - AppStream
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/
+gpgcheck=1
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-BaseOS.repo b/SOURCES/Rocky-BaseOS.repo
new file mode 100644
index 0000000..137da48
--- /dev/null
+++ b/SOURCES/Rocky-BaseOS.repo
@@ -0,0 +1,17 @@
+# Rocky-BaseOS.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[baseos]
+name=Rocky Linux $releasever - BaseOS
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
+gpgcheck=1
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-ContinuousRelease.repo b/SOURCES/Rocky-ContinuousRelease.repo
new file mode 100644
index 0000000..2605eb5
--- /dev/null
+++ b/SOURCES/Rocky-ContinuousRelease.repo
@@ -0,0 +1,24 @@
+# Rocky-ContinuousRelease.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+#
+# The Continuous Release (CR) repository contains packages for the next minor
+# release of Rocky Linux.  This repository only has content in the time period
+# between an upstream release and the official Rocky Linux release.  These
+# packages have not been fully tested yet and should be considered beta
+# quality.  They are made available for people willing to test and provide
+# feedback for the next release.
+
+[cr]
+name=Rocky Linux $releasever - ContinuousRelease
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=cr&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/cr/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Debuginfo.repo b/SOURCES/Rocky-Debuginfo.repo
new file mode 100644
index 0000000..42e8bd0
--- /dev/null
+++ b/SOURCES/Rocky-Debuginfo.repo
@@ -0,0 +1,11 @@
+# Rocky-Debuginfo.repo
+#
+# All debug packages are merged into a single repo, split by basearch, and are
+# not signed.
+
+[debuginfo]
+name=Rocky Linux $releasever - Debuginfo
+baseurl=http://debuginfo.rockylinux.org/$releasever/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Devel.repo b/SOURCES/Rocky-Devel.repo
new file mode 100644
index 0000000..592890c
--- /dev/null
+++ b/SOURCES/Rocky-Devel.repo
@@ -0,0 +1,17 @@
+# Rocky-Devel.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[devel]
+name=Rocky Linux $releasever - Devel WARNING! FOR BUILDROOT USE ONLY!
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=Devel&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/Devel/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Extras.repo b/SOURCES/Rocky-Extras.repo
new file mode 100644
index 0000000..43ca713
--- /dev/null
+++ b/SOURCES/Rocky-Extras.repo
@@ -0,0 +1,17 @@
+# Rocky-Extras.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[extras]
+name=Rocky Linux $releasever - Extras
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/
+gpgcheck=1
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-FastTrack.repo b/SOURCES/Rocky-FastTrack.repo
new file mode 100644
index 0000000..04ecbfb
--- /dev/null
+++ b/SOURCES/Rocky-FastTrack.repo
@@ -0,0 +1,17 @@
+# Rocky-FastTrack.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[fasttrack]
+name=Rocky Linux $releasever - FastTrack
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=fasttrack&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/fasttrack/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-HighAvailability.repo b/SOURCES/Rocky-HighAvailability.repo
new file mode 100644
index 0000000..5c5898b
--- /dev/null
+++ b/SOURCES/Rocky-HighAvailability.repo
@@ -0,0 +1,17 @@
+# Rocky-HighAvailability.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[ha]
+name=Rocky Linux $releasever - HighAvailability
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=HighAvailability&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/HighAvailability/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Media.repo b/SOURCES/Rocky-Media.repo
new file mode 100644
index 0000000..9dabfc0
--- /dev/null
+++ b/SOURCES/Rocky-Media.repo
@@ -0,0 +1,22 @@
+# Rocky-Media.repo
+#
+# You can use this repo to install items directly off the installation media.
+# Verify your mount point matches one of the below file:// paths.
+
+[media-baseos]
+name=Rocky Linux $releasever - Media - BaseOS
+baseurl=file:///media/Rocky/BaseOS
+        file:///media/cdrom/BaseOS
+        file:///media/cdrecorder/BaseOS
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
+
+[media-appstream]
+name=Rocky Linux $releasever - Media - AppStream
+baseurl=file:///media/Rocky/AppStream
+        file:///media/cdrom/AppStream
+        file:///media/cdrecorder/AppStream
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Plus.repo b/SOURCES/Rocky-Plus.repo
new file mode 100644
index 0000000..f2c423e
--- /dev/null
+++ b/SOURCES/Rocky-Plus.repo
@@ -0,0 +1,17 @@
+# Rocky-Plus.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[plus]
+name=Rocky Linux $releasever - Plus
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=rockyplus&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/rockyplus/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-PowerTools.repo b/SOURCES/Rocky-PowerTools.repo
new file mode 100644
index 0000000..2eb1aa1
--- /dev/null
+++ b/SOURCES/Rocky-PowerTools.repo
@@ -0,0 +1,17 @@
+# Rocky-PowerTools.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[powertools]
+name=Rocky Linux $releasever - PowerTools
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/PowerTools/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-ResilientStorage.repo b/SOURCES/Rocky-ResilientStorage.repo
new file mode 100644
index 0000000..a8041d3
--- /dev/null
+++ b/SOURCES/Rocky-ResilientStorage.repo
@@ -0,0 +1,17 @@
+# Rocky-ResilientStorage.repo
+#
+# The mirrorlist system uses the connecting IP address of the client and the
+# update status of each mirror to pick current mirrors that are geographically
+# close to the client.  You should use this for Rocky updates unless you are
+# manually picking other mirrors.
+#
+# If the mirrorlist does not work for you, you can try the commented out
+# baseurl line instead.
+
+[resilient-storage]
+name=Rocky Linux $releasever - ResilientStorage
+mirrorlist=http://mirrorlist.rockylinux.org/?release=$releasever&arch=$basearch&repo=ResilientStorage&infra=$infra
+#baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/ResilientStorage/$basearch/os/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SOURCES/Rocky-Sources.repo b/SOURCES/Rocky-Sources.repo
new file mode 100644
index 0000000..b479789
--- /dev/null
+++ b/SOURCES/Rocky-Sources.repo
@@ -0,0 +1,30 @@
+# Rocky-Sources.repo
+
+
+[baseos-source]
+name=Rocky Linux $releasever - BaseOS - Source
+baseurl=http://vault.rockylinux.org/$contentdir/$releasever/BaseOS/Source/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
+
+[appstream-source]
+name=Rocky Linux $releasever - AppStream - Source
+baseurl=http://vault.rockylinux.org/$contentdir/$releasever/AppStream/Source/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
+
+[extras-source]
+name=Rocky Linux $releasever - Extras - Source
+baseurl=http://vault.rockylinux.org/$contentdir/$releasever/extras/Source/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
+
+[plus-source]
+name=Rocky Linux $releasever - Plus - Source
+baseurl=http://vault.rockylinux.org/$contentdir/$releasever/rockyplus/Source/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
diff --git a/SPECS/rocky-release.spec b/SPECS/rocky-release.spec
index a622054..f0c8ff7 100644
--- a/SPECS/rocky-release.spec
+++ b/SPECS/rocky-release.spec
@@ -1,45 +1,114 @@
-%global distro  Rocky Linux
-%global major   8
-%global minor   3
+%define debug_package %{nil}
+
+# Product information
+%define product_family Rocky Linux
+%define variant_titlecase Server
+%define variant_lowercase server
+
+# Distribution Name and Version
+%define distro  Rocky Linux
+%define major   8
+%define minor   3
+%define rocky_rel 5
+%define upstream_rel %{major}.%{minor}
+%define upstream_rel_long %{upstream_rel}-1
+
+%define base_release_version %{major}
+%define full_release_version %{major}
+%define dist_release_version %{major}
+
+%ifarch ppc64le
+%define tuned_profile :server
+%endif
+
+# Avoids a weird anaconda problem
+%global __requires_exclude_from %{_libexecdir}
 
 Name:           rocky-release
 Version:        %{major}.%{minor}
-Release:        4%{?dist}
+Release:        %{rocky_rel}%{?dist}
 Summary:        %{distro} release files
 License:        GPLv2
 URL:            https://rockylinux.org
 BuildArch:      noarch
 
-Requires:       rocky-repos(%{major})
-Provides:       rocky-release = %{version}-%{release}
+# What do we provide?
+Provides:       rocky-release = ${version}-${release}
+Provides:       rocky-release(upstream) = ${upstream_rel}
+Provides:       redhat-release = %{upstream_rel_long}
+Provides:       system-release = %{upstream_rel_long}
+Provides:       system-release(releasever) = %{major}
 
-# required for a lorax run (to generate install media)
+## Required by libdnf
+Provides:       base-module(platform:el%{major})
+
+## This makes lorax/pungi/anaconda happy
 Provides:       rocky-release-eula
 Provides:       redhat-release-eula
 
-# required by epel-release
-Provides:       redhat-release = %{version}-%{release}
+# What are our requirements?
+Requires:       rocky-repos(%{base_release_version})
 
-# required by dnf
-# https://github.com/rpm-software-management/dnf/blob/4.2.23/dnf/const.py.in#L26
-Provides:       system-release = %{version}-%{release}
-Provides:       system-release(releasever) = %{major}
-
-# required by libdnf
-# https://github.com/rpm-software-management/libdnf/blob/0.48.0/libdnf/module/ModulePackage.cpp#L472
-Provides:       base-module(platform:el%{major})
+# GPG Keys
+Source101:      RPM-GPG-KEY-rockyofficial
+Source102:      RPM-GPG-KEY-rockytesting
 
+# Release Sources
 Source200:      EULA
 Source201:      LICENSE
 Source202:      Contributors
-
 Source300:      85-display-manager.preset
 Source301:      90-default.preset
 Source302:      99-default-disable.preset
 
+# Repo Sources
+Source1200:     Rocky-BaseOS.repo
+Source1201:     Rocky-AppStream.repo
+Source1202:     Rocky-PowerTools.repo
+Source1203:     Rocky-Extras.repo
+
+# Rocky Add-ons
+Source1210:     Rocky-HighAvailability.repo
+Source1211:     Rocky-ResilientStorage.repo
+
+# Rocky Special Stuff
+Source1220:     Rocky-Media.repo
+#Source1221:     Rocky-Debuginfo.repo
+Source1222:     Rocky-Sources.repo
+Source1223:     Rocky-Devel.repo
+#Source1224:     Rocky-ContinuousRelease.repo
+#Source1225:     Rocky-FastTrack.repo
+#Source1226:     Rocky-Plus.repo
+
 %description
 %{distro} release files.
 
+%package -n rocky-repos
+Summary:        %{distro} Package Repositories
+License:        GPLv2
+BuildArch:      noarch
+Provides:       rocky-repos(%{major}) = %{upstream_rel}
+Requires:       system-release = %{upstream_rel}
+Requires:       rocky-gpg-keys
+Conflicts:      ${name} < 8.0
+
+%description -n rocky-repos
+%{distro} package repository files for yum/dnf
+
+%package -n rocky-gpg-keys
+Summary:        Rocky RPM GPG Keys
+Conflicts:      %{name} < 8.0
+BuildArch:      noarch
+
+%description -n rocky-gpg-keys
+This package provides the RPM signature keys for Rocky.
+
+%prep
+echo Good.
+
+%build
+echo Good.
+
 %install
 # copy license and contributors doc here for %%license and %%doc macros
 cp %{SOURCE201} %{SOURCE202} .
@@ -124,8 +193,22 @@ install -p -m 0644 %{SOURCE200} %{buildroot}%{_datadir}/rocky-release/
 
 # copy systemd presets
 install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/system-preset/
-install -p -m 0644 %{_sourcedir}/*.preset %{buildroot}%{_prefix}/lib/systemd/system-preset/
+install -m 0644 %{SOURCE300} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
+install -m 0644 %{SOURCE301} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
+install -m 0644 %{SOURCE302} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
 
+# repo stuff
+install -d -m 0755 %{buildroot}%{_sysconfdir}/dnf/vars
+echo "stock" > %{buildroot}%{_sysconfdir}/dnf/vars/infra
+echo "rocky" > %{buildroot}%{_sysconfdir}/dnf/vars/contentdir
+
+# copy GPG keys
+install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/rpm-gpg
+install -p -m 0644 %{_sourcedir}/RPM-GPG-KEY-* %{buildroot}%{_sysconfdir}/pki/rpm-gpg/
+
+# copy yum repos
+install -d -m 0755 %{buildroot}%{_sysconfdir}/yum.repos.d
+install -p -m 0644 %{_sourcedir}/*.repo %{buildroot}%{_sysconfdir}/yum.repos.d/
 
 %files
 %license LICENSE
@@ -143,12 +226,20 @@ install -p -m 0644 %{_sourcedir}/*.preset %{buildroot}%{_prefix}/lib/systemd/sys
 %{_datadir}/rocky-release
 %{_prefix}/lib/os-release
 %{_prefix}/lib/systemd/system-preset/*
-%ifarch %{arm} aarch64
-%attr(0755,root,root) %{_bindir}/rootfs-expand
-%endif
 
+%files -n rocky-repos
+%license LICENSE
+%config(noreplace) %{_sysconfdir}/yum.repos.d/Rocky-*.repo
+%config(noreplace) %{_sysconfdir}/dnf/vars/contentdir
+%config(noreplace) %{_sysconfdir}/dnf/vars/infra
+
+%files -n rocky-gpg-keys
+%{_sysconfdir}/pki/rpm-gpg/
 
 %changelog
+* Thu Apr 08 2021 Louis Abel <label@rockylinux.org> - 8.3-5
+- Combine release, repos, and keys together to simplify
+
 * Mon Feb 01 2021 Louis Abel <label@rockylinux.org> - 8.3-4
 - Initial Rocky Release 8.3 based on CentOS 8.3
 - Keep centos rpm macro to reduce package modification burden
diff --git a/id_verify b/id_verify
new file mode 100644
index 0000000..adc40d4
--- /dev/null
+++ b/id_verify
@@ -0,0 +1,2 @@
+Signing: 6d745a60
+Testing: bbe2c108
-- 
GitLab