diff --git a/.libarrow.metadata b/.libarrow.metadata
index 17ee9cd..ee09dbf 100644
--- a/.libarrow.metadata
+++ b/.libarrow.metadata
@@ -1 +1 @@
-ca5382e9a81ae1c026a9d59ce1c2efe6afa218ed  SOURCES/apache-arrow-8.0.1.tar.gz
+5fba5d67c372a653122501892c594dff9255fa9f  SOURCES/apache-arrow-9.0.0.tar.gz
diff --git a/SOURCES/0001-cpp-CMakeLists.txt.patch b/SOURCES/0001-cpp-CMakeLists.txt.patch
deleted file mode 100644
index fc981d9..0000000
--- a/SOURCES/0001-cpp-CMakeLists.txt.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- apache-arrow-7.0.0/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig	2022-02-09 16:15:28.319066701 -0500
-+++ apache-arrow-7.0.0/cpp/cmake_modules/ThirdpartyToolchain.cmake	2022-02-10 12:31:49.152731014 -0500
-@@ -2038,7 +2038,7 @@
- 
- if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
-                                              ))
--  set(xsimd_SOURCE "BUNDLED")
-+  set(xsimd_SOURCE "SYSTEM")
-   resolve_dependency(xsimd)
-   # TODO: Don't use global includes but rather target_include_directories
-   include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
diff --git a/SOURCES/0002-cpp_src_arrow_util_utf8.h.patch b/SOURCES/0002-cpp_src_arrow_util_utf8.h.patch
deleted file mode 100644
index b4740a7..0000000
--- a/SOURCES/0002-cpp_src_arrow_util_utf8.h.patch
+++ /dev/null
@@ -1,83 +0,0 @@
---- apache-arrow-8.0.0/cpp/src/arrow/util/utf8.h	2022-05-03 12:59:12.000000000 -0400
-+++ apache-arrow-7.0.0/cpp/src/arrow/util/utf8.h	2022-01-28 19:09:12.000000000 -0500
-@@ -241,7 +241,11 @@
- 
- #if defined(ARROW_HAVE_NEON) || defined(ARROW_HAVE_SSE4_2)
- static inline bool ValidateAsciiSimd(const uint8_t* data, int64_t len) {
--  using simd_batch = xsimd::make_sized_batch_t<int8_t, 16>;
-+#ifdef ARROW_HAVE_NEON
-+  using simd_batch = xsimd::batch<int8_t, xsimd::neon64>;
-+#else
-+  using simd_batch = xsimd::batch<int8_t, xsimd::sse4_2>;
-+#endif
- 
-   if (len >= 32) {
-     const simd_batch zero(static_cast<int8_t>(0));
---- apache-arrow-8.0.0/cpp/src/arrow/csv/writer.cc.orig	2022-05-08 17:00:08.860430555 -0400
-+++ apache-arrow-8.0.0/cpp/src/arrow/csv/writer.cc	2022-05-08 17:02:42.526756723 -0400
-@@ -217,7 +217,12 @@
- #if defined(ARROW_HAVE_SSE4_2) || defined(ARROW_HAVE_NEON)
-     // _mm_cmpistrc gives slightly better performance than the naive approach,
-     // probably doesn't deserve the effort
--    using simd_batch = xsimd::make_sized_batch_t<uint8_t, 16>;
-+#ifdef ARROW_HAVE_NEON
-+    using simd_batch = xsimd::batch<int8_t, xsimd::neon64>;
-+#else
-+    using simd_batch = xsimd::batch<int8_t, xsimd::sse4_2>;
-+#endif
-+
-     while ((offset + 16) <= buffer_size) {
-       const auto v = simd_batch::load_unaligned(data + offset);
-       if (xsimd::any((v == '\n') | (v == '\r') | (v == '"') | (v == delimiter))) {
---- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd_codegen.py.orig	2022-05-08 17:19:16.349459649 -0400
-+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd_codegen.py	2022-05-08 17:19:56.813754872 -0400
-@@ -176,7 +176,7 @@
-         template <DispatchLevel level>
-         struct {struct_name} {{
- 
--        using simd_batch = xsimd::make_sized_batch_t<uint32_t, {simd_width//32}>;
-+        using simd_batch = xsimd::batch<uint32_t, simd_arch>;
-         """))
- 
-     gen = UnpackGenerator(simd_width)
---- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd128_generated.h.orig	2022-05-08 17:32:49.743300777 -0400
-+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd128_generated.h	2022-05-08 17:36:05.429945990 -0400
-@@ -36,7 +36,13 @@
- template <DispatchLevel level>
- struct UnpackBits128 {
- 
--using simd_batch = xsimd::make_sized_batch_t<uint32_t, 4>;
-+#ifdef ARROW_HAVE_NEON
-+using simd_arch = xsimd::neon64;
-+#else
-+using simd_arch = xsimd::sse4_2;
-+#endif
-+
-+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
- 
- inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
-   memset(out, 0x0, 32 * sizeof(*out));
---- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd256_generated.h.orig	2022-05-08 17:31:13.627966647 -0400
-+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd256_generated.h	2022-05-08 17:38:01.045963910 -0400
-@@ -36,7 +36,8 @@
- template <DispatchLevel level>
- struct UnpackBits256 {
- 
--using simd_batch = xsimd::make_sized_batch_t<uint32_t, 8>;
-+using simd_arch = xsimd::avx2;
-+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
- 
- inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
-   memset(out, 0x0, 32 * sizeof(*out));
---- apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd512_generated.h.orig	2022-05-08 17:32:56.763180428 -0400
-+++ apache-arrow-8.0.0/cpp/src/arrow/util/bpacking_simd512_generated.h	2022-05-08 17:37:35.072409190 -0400
-@@ -36,7 +36,8 @@
- template <DispatchLevel level>
- struct UnpackBits512 {
- 
--using simd_batch = xsimd::make_sized_batch_t<uint32_t, 16>;
-+using simd_arch = xsimd::avx512bw;
-+using simd_batch = xsimd::batch<uint32_t, simd_arch>;
- 
- inline static const uint32_t* unpack0_32(const uint32_t* in, uint32_t* out) {
-   memset(out, 0x0, 32 * sizeof(*out));
diff --git a/SPECS/libarrow.spec b/SPECS/libarrow.spec
index 4de0e93..7723fca 100644
--- a/SPECS/libarrow.spec
+++ b/SPECS/libarrow.spec
@@ -30,14 +30,12 @@
 %bcond_without have_utf8proc
 
 Name:		libarrow
-Version:	8.0.1
+Version:	9.0.0
 Release:	1%{?dist}
 Summary:	A toolbox for accelerated data interchange and in-memory processing
 License:	ASL 2.0
 URL:		https://arrow.apache.org/
 Source0:	https://dist.apache.org/repos/dist/release/arrow/arrow-%{version}/apache-arrow-%{version}.tar.gz
-Patch0001:	0001-cpp-CMakeLists.txt.patch
-Patch0002:	0002-cpp_src_arrow_util_utf8.h.patch
 # Apache ORC (liborc) has numerous compile errors and apparently assumes
 # a 64-bit build and runtime environment. This is only consumer of the liborc
 # package, and in turn the only consumer of this and liborc is Ceph, which
@@ -149,13 +147,14 @@ Libraries and header files for Apache Arrow C++.
 %endif
 %exclude %{_includedir}/arrow/python/
 %exclude %{_libdir}/cmake/arrow/FindBrotli.cmake
-%exclude %{_libdir}/cmake/arrow/FindLz4.cmake
+%exclude %{_libdir}/cmake/arrow/Findlz4Alt.cmake
 %exclude %{_libdir}/cmake/arrow/FindORC.cmake
-%exclude %{_libdir}/cmake/arrow/FindSnappy.cmake
+%exclude %{_libdir}/cmake/arrow/FindSnappyAlt.cmake
 %exclude %{_libdir}/cmake/arrow/FindgRPCAlt.cmake
 %exclude %{_libdir}/cmake/arrow/Findre2Alt.cmake
 %exclude %{_libdir}/cmake/arrow/Findutf8proc.cmake
 %exclude %{_libdir}/cmake/arrow/Findzstd.cmake
+%exclude %{_libdir}/cmake/arrow/FindThrift.cmake
 %dir %{_libdir}/cmake/arrow
      %{_libdir}/cmake/arrow/ArrowConfig*.cmake
      %{_libdir}/cmake/arrow/ArrowOptions.cmake
@@ -169,6 +168,8 @@ Libraries and header files for Apache Arrow C++.
 %{_libdir}/pkgconfig/arrow-json.pc
 %{_libdir}/pkgconfig/arrow-orc.pc
 %{_libdir}/pkgconfig/arrow.pc
+%{_datadir}/arrow/gdb/gdb_arrow.py
+%{_datadir}/gdb/auto-load/usr/lib64/libarrow.so.*-gdb.py
 
 #--------------------------------------------------------------------
 
@@ -739,6 +740,9 @@ popd
 #--------------------------------------------------------------------
 
 %changelog
+* Wed Aug 3 2022  Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 9.0.0-1
+- Apache Arrow 9.0.0 GA
+
 * Thu Jul 21 2022  Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 8.0.1-1
 - Apache Arrow 8.0.1 GA