This fixes the build with boost 1.87.0b1 and still builds with 1.84. directory.hpp and exception.hpp are no longer implicitly included, so add those and convenience.hpp no longer exists.
One instance of is_regular() is replaced by is_regular_file() following the deprecation notice and path.leaf() is replaced by what it aliases, path.filename(). All rather straightforward, but could use a set of eyes and a test by someone who uses this. Index: Makefile =================================================================== RCS file: /cvs/ports/databases/mongodb/44/Makefile,v diff -u -p -r1.20 Makefile --- Makefile 6 Aug 2024 09:00:14 -0000 1.20 +++ Makefile 21 Nov 2024 10:35:34 -0000 @@ -1,7 +1,7 @@ PORTROACH = limitw:1,even V = 4.4.29 -REVISION = 2 +REVISION = 3 WANTLIB += ${COMPILER_LIBCXX} WANTLIB += boost_filesystem-mt boost_iostreams-mt boost_log-mt Index: patches/patch-src_mongo_db_initialize_server_global_state_cpp =================================================================== RCS file: patches/patch-src_mongo_db_initialize_server_global_state_cpp diff -N patches/patch-src_mongo_db_initialize_server_global_state_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_db_initialize_server_global_state_cpp 21 Nov 2024 08:53:18 -0000 @@ -0,0 +1,20 @@ +Index: src/mongo/db/initialize_server_global_state.cpp +--- src/mongo/db/initialize_server_global_state.cpp.orig ++++ src/mongo/db/initialize_server_global_state.cpp +@@ -35,6 +35,7 @@ + #include "mongo/db/initialize_server_global_state_gen.h" + + #include <boost/filesystem/operations.hpp> ++#include <boost/filesystem/exception.hpp> + #include <fmt/format.h> + #include <iostream> + #include <memory> +@@ -346,7 +347,7 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, + << "\" should name a file, not a directory."); + } + +- if (!serverGlobalParams.logAppend && boost::filesystem::is_regular(absoluteLogpath)) { ++ if (!serverGlobalParams.logAppend && boost::filesystem::is_regular_file(absoluteLogpath)) { + std::string renameTarget = absoluteLogpath + "." + terseCurrentTime(false); + boost::system::error_code ec; + boost::filesystem::rename(absoluteLogpath, renameTarget, ec); Index: patches/patch-src_mongo_db_startup_warnings_mongod_cpp =================================================================== RCS file: patches/patch-src_mongo_db_startup_warnings_mongod_cpp diff -N patches/patch-src_mongo_db_startup_warnings_mongod_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_db_startup_warnings_mongod_cpp 21 Nov 2024 08:42:25 -0000 @@ -0,0 +1,11 @@ +Index: src/mongo/db/startup_warnings_mongod.cpp +--- src/mongo/db/startup_warnings_mongod.cpp.orig ++++ src/mongo/db/startup_warnings_mongod.cpp +@@ -34,6 +34,7 @@ + #include "mongo/db/startup_warnings_mongod.h" + + #include <boost/filesystem/operations.hpp> ++#include <boost/filesystem/exception.hpp> + #include <fstream> + #ifndef _WIN32 + #include <sys/resource.h> Index: patches/patch-src_mongo_dbtests_framework_options_cpp =================================================================== RCS file: patches/patch-src_mongo_dbtests_framework_options_cpp diff -N patches/patch-src_mongo_dbtests_framework_options_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_dbtests_framework_options_cpp 21 Nov 2024 08:42:25 -0000 @@ -0,0 +1,11 @@ +Index: src/mongo/dbtests/framework_options.cpp +--- src/mongo/dbtests/framework_options.cpp.orig ++++ src/mongo/dbtests/framework_options.cpp +@@ -35,6 +35,7 @@ + #include "mongo/dbtests/framework_options.h" + + #include <boost/filesystem/operations.hpp> ++#include <boost/filesystem/exception.hpp> + #include <iostream> + + #include "mongo/base/status.h" Index: patches/patch-src_mongo_scripting_engine_cpp =================================================================== RCS file: patches/patch-src_mongo_scripting_engine_cpp diff -N patches/patch-src_mongo_scripting_engine_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_scripting_engine_cpp 21 Nov 2024 09:12:57 -0000 @@ -0,0 +1,11 @@ +Index: src/mongo/scripting/engine.cpp +--- src/mongo/scripting/engine.cpp.orig ++++ src/mongo/scripting/engine.cpp +@@ -33,6 +33,7 @@ + + #include "mongo/scripting/engine.h" + ++#include <boost/filesystem/directory.hpp> + #include <boost/filesystem/operations.hpp> + #include <cctype> + Index: patches/patch-src_mongo_shell_shell_utils_extended_cpp =================================================================== RCS file: /cvs/ports/databases/mongodb/44/patches/patch-src_mongo_shell_shell_utils_extended_cpp,v diff -u -p -r1.1 patch-src_mongo_shell_shell_utils_extended_cpp --- patches/patch-src_mongo_shell_shell_utils_extended_cpp 25 Jun 2022 17:11:40 -0000 1.1 +++ patches/patch-src_mongo_shell_shell_utils_extended_cpp 21 Nov 2024 08:42:25 -0000 @@ -3,10 +3,11 @@ Fix build with Boost 1.79 Index: src/mongo/shell/shell_utils_extended.cpp --- src/mongo/shell/shell_utils_extended.cpp.orig +++ src/mongo/shell/shell_utils_extended.cpp -@@ -37,6 +37,7 @@ +@@ -37,6 +37,8 @@ #endif #include <boost/filesystem.hpp> ++#include <boost/filesystem/exception.hpp> +#include <boost/filesystem/fstream.hpp> #include <fstream> Index: patches/patch-src_mongo_shell_shell_utils_launcher_cpp =================================================================== RCS file: patches/patch-src_mongo_shell_shell_utils_launcher_cpp diff -N patches/patch-src_mongo_shell_shell_utils_launcher_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_shell_shell_utils_launcher_cpp 21 Nov 2024 08:59:24 -0000 @@ -0,0 +1,36 @@ +Index: src/mongo/shell/shell_utils_launcher.cpp +--- src/mongo/shell/shell_utils_launcher.cpp.orig ++++ src/mongo/shell/shell_utils_launcher.cpp +@@ -907,26 +907,26 @@ void copyDir(const boost::filesystem::path& from, cons + boost::filesystem::directory_iterator i(from); + while (i != end) { + boost::filesystem::path p = *i; +- if (p.leaf() == "metrics.interim" || p.leaf() == "metrics.interim.temp") { ++ if (p.filename() == "metrics.interim" || p.filename() == "metrics.interim.temp") { + // Ignore any errors for metrics.interim* files as these may disappear during copy + boost::system::error_code ec; +- boost::filesystem::copy_file(p, to / p.leaf(), ec); ++ boost::filesystem::copy_file(p, to / p.filename(), ec); + if (ec) { + LOGV2_INFO(22814, + "Skipping copying of file from '{from}' to " + "'{to}' due to: {error}", + "Skipping copying of file due to error" + "from"_attr = p.generic_string(), +- "to"_attr = (to / p.leaf()).generic_string(), ++ "to"_attr = (to / p.filename()).generic_string(), + "error"_attr = ec.message()); + } +- } else if (p.leaf() != "mongod.lock" && p.leaf() != "WiredTiger.lock") { ++ } else if (p.filename() != "mongod.lock" && p.filename() != "WiredTiger.lock") { + if (boost::filesystem::is_directory(p)) { +- boost::filesystem::path newDir = to / p.leaf(); ++ boost::filesystem::path newDir = to / p.filename(); + boost::filesystem::create_directory(newDir); + copyDir(p, newDir); + } else { +- boost::filesystem::copy_file(p, to / p.leaf()); ++ boost::filesystem::copy_file(p, to / p.filename()); + } + } + ++i; Index: patches/patch-src_mongo_shell_shell_utils_launcher_h =================================================================== RCS file: patches/patch-src_mongo_shell_shell_utils_launcher_h diff -N patches/patch-src_mongo_shell_shell_utils_launcher_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_shell_shell_utils_launcher_h 21 Nov 2024 09:04:34 -0000 @@ -0,0 +1,12 @@ +Index: src/mongo/shell/shell_utils_launcher.h +--- src/mongo/shell/shell_utils_launcher.h.orig ++++ src/mongo/shell/shell_utils_launcher.h +@@ -29,7 +29,7 @@ + + #pragma once + +-#include <boost/filesystem/convenience.hpp> ++#include <boost/filesystem/operations.hpp> + #include <map> + #include <sstream> + #include <string> Index: patches/patch-src_mongo_util_processinfo_linux_cpp =================================================================== RCS file: patches/patch-src_mongo_util_processinfo_linux_cpp diff -N patches/patch-src_mongo_util_processinfo_linux_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mongo_util_processinfo_linux_cpp 21 Nov 2024 08:42:25 -0000 @@ -0,0 +1,11 @@ +Index: src/mongo/util/processinfo_linux.cpp +--- src/mongo/util/processinfo_linux.cpp.orig ++++ src/mongo/util/processinfo_linux.cpp +@@ -52,6 +52,7 @@ + #endif + + #include <boost/filesystem.hpp> ++#include <boost/filesystem/exception.hpp> + #include <boost/none.hpp> + #include <boost/optional.hpp> + #include <fmt/format.h>