fix xmrig bundling issues
This commit is contained in:
32
src/app.cpp
32
src/app.cpp
@@ -1855,10 +1855,34 @@ bool App::startEmbeddedDaemon()
|
||||
}
|
||||
DEBUG_LOGF("Sapling params extracted successfully\n");
|
||||
} else {
|
||||
daemon_status_ = "Sapling parameters not found. They should be in: " + rpc::Connection::getSaplingParamsDir();
|
||||
DEBUG_LOGF("Sapling params not found and no embedded resources available!\n");
|
||||
DEBUG_LOGF("Expected location: %s\n", rpc::Connection::getSaplingParamsDir().c_str());
|
||||
return false;
|
||||
// Fallback: check for params bundled alongside the executable
|
||||
// (zip distributions bundle sapling-*.params next to the binary)
|
||||
namespace fs = std::filesystem;
|
||||
std::string exe_dir = util::Platform::getExecutableDirectory();
|
||||
std::string daemon_dir = resources::getDaemonDirectory();
|
||||
const char* paramFiles[] = { "sapling-spend.params", "sapling-output.params", "asmap.dat" };
|
||||
bool copied = false;
|
||||
if (!exe_dir.empty()) {
|
||||
std::error_code ec;
|
||||
fs::create_directories(daemon_dir, ec);
|
||||
for (const char* name : paramFiles) {
|
||||
fs::path src = fs::path(exe_dir) / name;
|
||||
fs::path dst = fs::path(daemon_dir) / name;
|
||||
if (fs::exists(src) && !fs::exists(dst)) {
|
||||
DEBUG_LOGF("Copying bundled %s from exe dir to %s\n", name, daemon_dir.c_str());
|
||||
fs::copy_file(src, dst, ec);
|
||||
if (!ec) copied = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (copied && rpc::Connection::verifySaplingParams()) {
|
||||
DEBUG_LOGF("Sapling params copied from exe directory successfully\n");
|
||||
} else {
|
||||
daemon_status_ = "Sapling parameters not found. They should be in: " + rpc::Connection::getSaplingParamsDir();
|
||||
DEBUG_LOGF("Sapling params not found and no embedded resources available!\n");
|
||||
DEBUG_LOGF("Expected location: %s\n", rpc::Connection::getSaplingParamsDir().c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user