1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-05 16:15:50 +03:00

Migration for Boost 1.85

Boost 1.85 removed some deprecated code in filesystem module which is
still used in columnstore:

- The boost/filesystem/convenience.hpp was removed but columnstore does
  not use any functionality from that file except indirect includes.
  Therefore this include is removed or replaced with more general
  boost/filesystem.hpp. The convenience.hpp header file was deprecated
  in filesystem V3 introduced in Boost 1.46.0.

- `normalize` method was removed and users are suggested to replace it
  with `lexically_normal` method, which was introduced in Boost 1.60.0.
  Original `normalize` call is preserved for backward compatibility with
  old Boost version, however`, `lexically_normal` method is preferably
  used with Boost 1.60.0 and newer.

- The `copy_option` was removed in favor of `copy_options` (note the
  trailing 's'), but enum values were renamed. Namely, `fail_if_exists`
  is replaced with `none` and `overwrite_if_exists` is replaced with
  `overwrite_existing`. The `copy_options` was introduced in Boost
  1.74.0.

  New form is used instead, but a backward compatibility layer for Boost
  1.73.0 and older was introduced in boost_copy_options_compat.hpp file.
  This solution seems to be less awkward than using multiple #if #else
  #endif blocks in source code.
This commit is contained in:
Petr Vaněk
2025-02-12 14:06:51 +01:00
committed by Leonid Fedorov
parent ef0647b74a
commit 86159cc899
15 changed files with 48 additions and 20 deletions

View File

@@ -30,6 +30,7 @@
#include <readline.h> #include <readline.h>
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include "boost_copy_options_compat.hpp"
#include "mcsconfig.h" #include "mcsconfig.h"
#include "liboamcpp.h" #include "liboamcpp.h"
#include "configcpp.h" #include "configcpp.h"
@@ -256,11 +257,11 @@ void* reportThread(string* reporttype)
boost::filesystem::path configFile = boost::filesystem::path configFile =
std::string(MCSSYSCONFDIR) + std::string("/columnstore/Columnstore.xml"); std::string(MCSSYSCONFDIR) + std::string("/columnstore/Columnstore.xml");
boost::filesystem::copy_file(configFile, "./Columnstore.xml", boost::filesystem::copy_file(configFile, "./Columnstore.xml",
boost::filesystem::copy_option::overwrite_if_exists); boost::filesystem::copy_options::overwrite_existing);
boost::filesystem::path SMconfigFile = boost::filesystem::path SMconfigFile =
std::string(MCSSYSCONFDIR) + std::string("/columnstore/storagemanager.cnf"); std::string(MCSSYSCONFDIR) + std::string("/columnstore/storagemanager.cnf");
boost::filesystem::copy_file(SMconfigFile, "./storagemanager.cnf", boost::filesystem::copy_file(SMconfigFile, "./storagemanager.cnf",
boost::filesystem::copy_option::overwrite_if_exists); boost::filesystem::copy_options::overwrite_existing);
system("sed -i 's/.*aws_access_key_id.*/aws_access_key_id={PRIVATE}/' ./storagemanager.cnf"); system("sed -i 's/.*aws_access_key_id.*/aws_access_key_id={PRIVATE}/' ./storagemanager.cnf");
system("sed -i 's/.*aws_secret_access_key.*/aws_secret_access_key={PRIVATE}/' ./storagemanager.cnf"); system("sed -i 's/.*aws_secret_access_key.*/aws_secret_access_key={PRIVATE}/' ./storagemanager.cnf");
fclose(pOutputFile); fclose(pOutputFile);
@@ -858,7 +859,7 @@ int main(int argc, char* argv[])
boost::filesystem::path configFile = std::string(MCSMYCNFDIR) + "/columnstore.cnf"; boost::filesystem::path configFile = std::string(MCSMYCNFDIR) + "/columnstore.cnf";
boost::filesystem::copy_file(configFile, "./columnstore.cnf", boost::filesystem::copy_file(configFile, "./columnstore.cnf",
boost::filesystem::copy_option::overwrite_if_exists); boost::filesystem::copy_options::overwrite_existing);
} }
int wait = 0; int wait = 0;

View File

@@ -21,6 +21,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include <time.h> #include <time.h>
#include "boost_copy_options_compat.hpp"
#include "LocalStorage.h" #include "LocalStorage.h"
#include "Config.h" #include "Config.h"
@@ -94,7 +95,7 @@ inline void LocalStorage::addLatency()
int LocalStorage::copy(const bf::path& source, const bf::path& dest) int LocalStorage::copy(const bf::path& source, const bf::path& dest)
{ {
boost::system::error_code err; boost::system::error_code err;
bf::copy_file(source, dest, bf::copy_option::fail_if_exists, err); bf::copy_file(source, dest, bf::copy_options::none, err);
if (err) if (err)
{ {
errno = err.value(); errno = err.value();

View File

@@ -77,7 +77,13 @@ bf::path Ownership::get(const bf::path& p, bool getOwnership)
bf::path::const_iterator pit; bf::path::const_iterator pit;
int i, levels; int i, levels;
#if BOOST_VERSION >= 106000
// available since 1.60.0 released 2015-12-17
normalizedPath.lexically_normal();
#else
// removed in 1.85.0 release 2024-04-15
normalizedPath.normalize(); normalizedPath.normalize();
#endif
// cerr << "Ownership::get() param = " << normalizedPath.string() << endl; // cerr << "Ownership::get() param = " << normalizedPath.string() << endl;
if (prefixDepth > 0) if (prefixDepth > 0)
{ {

View File

@@ -0,0 +1,28 @@
#ifndef COMPAT_BOOST_FILESYSTEM_HPP
#define COMPAT_BOOST_FILESYSTEM_HPP
#include <boost/version.hpp>
// copy_option was replaced with copy_options in version 1.74.0 released 2020-08-14
// copy_option was removed in version 1.85.0 released 2024-04-15
#if BOOST_VERSION < 107400
#include <boost/filesystem/operations.hpp>
namespace boost
{
namespace filesystem
{
namespace copy_options
{
constexpr copy_option::enum_type overwrite_existing = copy_option::overwrite_if_exists;
constexpr copy_option::enum_type none = copy_option::fail_if_exists;
}
}
}
#endif
#endif

View File

@@ -54,6 +54,7 @@ namespace fs = boost::filesystem;
#include "configcpp.h" #include "configcpp.h"
#include "boost_copy_options_compat.hpp"
#include "exceptclasses.h" #include "exceptclasses.h"
#include "installdir.h" #include "installdir.h"
#ifdef _MSC_VER #ifdef _MSC_VER
@@ -401,7 +402,7 @@ void Config::writeConfig(const string& configFile) const
{ {
} }
fs::copy_file(dcf, scft, fs::copy_option::overwrite_if_exists); fs::copy_file(dcf, scft, fs::copy_options::overwrite_existing);
try try
{ {

View File

@@ -19,7 +19,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp> #include <boost/filesystem/operations.hpp>
#include <boost/thread/thread.hpp> #include <boost/thread/thread.hpp>
#include "configcpp.h" // for Config #include "configcpp.h" // for Config

View File

@@ -24,8 +24,7 @@
#include <stdio.h> #include <stdio.h>
#include <iostream> #include <iostream>
#include <boost/filesystem/path.hpp> #include <boost/filesystem.hpp>
#include <boost/filesystem/convenience.hpp>
using namespace std; using namespace std;

View File

@@ -34,8 +34,7 @@
#include <string.h> #include <string.h>
#include <vector> #include <vector>
#include <sstream> #include <sstream>
#include <boost/filesystem/path.hpp> #include <boost/filesystem.hpp>
#include <boost/filesystem/convenience.hpp>
#include <boost/uuid/uuid.hpp> #include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp> #include <boost/uuid/uuid_generators.hpp>
#include <pwd.h> #include <pwd.h>

View File

@@ -32,8 +32,7 @@ using namespace std;
#include "boost/scoped_ptr.hpp" #include "boost/scoped_ptr.hpp"
#include "boost/scoped_array.hpp" #include "boost/scoped_array.hpp"
#include "boost/thread/mutex.hpp" #include "boost/thread/mutex.hpp"
#include "boost/filesystem/path.hpp" #include "boost/filesystem.hpp"
#include "boost/filesystem/operations.hpp"
using namespace boost; using namespace boost;
#include "installdir.h" #include "installdir.h"

View File

@@ -19,8 +19,7 @@
// $Id: we_ddlcommandproc.cpp 3082 2011-09-26 22:00:38Z chao $ // $Id: we_ddlcommandproc.cpp 3082 2011-09-26 22:00:38Z chao $
#include <unistd.h> #include <unistd.h>
#include "boost/filesystem/operations.hpp" #include "boost/filesystem.hpp"
#include "boost/filesystem/path.hpp"
#include "boost/scoped_ptr.hpp" #include "boost/scoped_ptr.hpp"
using namespace std; using namespace std;

View File

@@ -24,7 +24,6 @@
#include <sstream> #include <sstream>
#include <boost/scoped_array.hpp> #include <boost/scoped_array.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
#include "we_define.h" #include "we_define.h"
#include "we_fileop.h" #include "we_fileop.h"

View File

@@ -20,7 +20,6 @@
#include <sstream> #include <sstream>
#include <boost/scoped_array.hpp> #include <boost/scoped_array.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
#include "we_define.h" #include "we_define.h"
#include "we_fileop.h" #include "we_fileop.h"

View File

@@ -30,7 +30,6 @@
#include <boost/scoped_array.hpp> #include <boost/scoped_array.hpp>
#include <boost/scoped_ptr.hpp> #include <boost/scoped_ptr.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
#include "we_bulkrollbackmgr.h" #include "we_bulkrollbackmgr.h"

View File

@@ -26,7 +26,6 @@
#include <sstream> #include <sstream>
#include <unistd.h> #include <unistd.h>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
#include "we_config.h" #include "we_config.h"
#include "we_convertor.h" #include "we_convertor.h"

View File

@@ -36,8 +36,7 @@
#include "we_convertor.h" #include "we_convertor.h"
#include "dataconvert.h" #include "dataconvert.h"
#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem.hpp>
#include <boost/filesystem/convenience.hpp>
#include <sys/time.h> #include <sys/time.h>