Upgrade boost 1.83->1.89

Boost 1.88 is now functionally required because it adds std::span
support for buffers.  upgrade the subproject.

While we're here, update the minimum to require 1.88, and update to use
the cmake version that doesn't require wrapping.

Change-Id: I0ad724735edb5930c3dac727461bccad3f7b265e
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/meson.build b/meson.build
index d1f1207..70ab104 100644
--- a/meson.build
+++ b/meson.build
@@ -37,7 +37,12 @@
 uring = dependency('liburing', include_type: 'system')
 nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
 gpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
-boost = dependency('boost', version: '>=1.83.0', include_type: 'system')
+boost = dependency(
+    'boost',
+    version: '>=1.88.0',
+    include_type: 'system',
+    fallback: 'boost-meson',
+)
 sdbusplus = dependency('sdbusplus', include_type: 'system')
 phosphor_logging_dep = dependency('phosphor-logging')
 
diff --git a/subprojects/boost-meson.wrap b/subprojects/boost-meson.wrap
new file mode 100644
index 0000000..d9a49d3
--- /dev/null
+++ b/subprojects/boost-meson.wrap
@@ -0,0 +1,10 @@
+[wrap-file]
+directory = boost-1.89.0
+
+source_url = https://github.com/boostorg/boost/releases/download/boost-1.89.0/boost-1.89.0-cmake.tar.gz
+source_hash = 954a01219bf818c7fb850fa610c2c8c71a4fa28fa32a1900056bcb6ff58cf908
+source_filename = 1_89_0.tar.gz
+patch_directory = boost
+
+[provide]
+boost-meson = boost_dep
diff --git a/subprojects/boost.wrap b/subprojects/boost.wrap
deleted file mode 100644
index 375d473..0000000
--- a/subprojects/boost.wrap
+++ /dev/null
@@ -1,6 +0,0 @@
-[wrap-file]
-directory = boost_1_83_0
-source_url = https://downloads.yoctoproject.org/mirror/sources/boost_1_83_0.tar.bz2
-source_hash = 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e
-source_filename = 1_83_0.tar.bz2
-patch_directory = boost
diff --git a/subprojects/packagefiles/boost/meson.build b/subprojects/packagefiles/boost/meson.build
index 81e714b..85fd9b3 100644
--- a/subprojects/packagefiles/boost/meson.build
+++ b/subprojects/packagefiles/boost/meson.build
@@ -1,5 +1,21 @@
-project('boost', 'cpp', version: '1.83.0', license: 'Boost')
+project('boost', 'cpp', version: '1.89.0', license: 'Boost')
 
-boost_dep = declare_dependency(include_directories: include_directories('.'))
+cmake = import('cmake')
+opt = cmake.subproject_options()
+boost_libs = ['asio', 'headers']
+opt.add_cmake_defines(
+    {
+        'BOOST_INCLUDE_LIBRARIES': ';'.join(boost_libs),
+        'BUILD_SHARED_LIBS': 'OFF',
+    },
+)
+
+boost_cmake = cmake.subproject('boost', required: true, options: opt)
+boost_deps = []
+foreach boost_lib : boost_libs
+    boost_lib_instance = boost_cmake.dependency('boost_' + boost_lib).as_system()
+    boost_deps += [boost_lib_instance]
+endforeach
+boost_dep = declare_dependency(dependencies: boost_deps)
 
 meson.override_dependency('boost', boost_dep)