> Dear maintainer: Not sure why I wasn't notified, only found about this today. I guess I need to subscribe to the HPC list?
> > During a rebuild of all packages in unstable, this package failed to build. > > Below you will find the last part of the build log (probably the most > relevant part, but not necessarily). If required, the full build log > is available here: > > https://people.debian.org/~sanvila/build-logs/202603/ > This is fixed in the latest release candidate of SaunaFS, but is not yet officially released (next week should be the release). In the meantime, I have a patch that's already in upstream. I've included it as an attachment, but I'm not yet sure how to package this properly for 5.1.2-1 that is in the repositories. Do I submit a debdiff for this? --- Best regards, Urmas Rist
Description: Fix compilation for boost1.9 Author: Urmas Rist <[email protected]> Forwarded: https://github.com/leil-io/saunafs/pull/754 Last-Update: 2026-02-18 --- --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -69,7 +69,7 @@ endif() # Find Boost -find_package(Boost CONFIG REQUIRED COMPONENTS filesystem iostreams program_options system) +find_package(Boost CONFIG REQUIRED COMPONENTS filesystem iostreams program_options) # Find Thrift find_package(Thrift COMPONENTS library) --- a/src/chunkserver/chunkserver-common/hdd_utils.h +++ b/src/chunkserver/chunkserver-common/hdd_utils.h @@ -20,6 +20,7 @@ #include "common/platform.h" +#include <boost/shared_ptr.hpp> #include <deque> #include "chunkserver-common/chunk_interface.h" --- a/src/chunkserver/chunkserver-common/plugin_manager.h +++ b/src/chunkserver/chunkserver-common/plugin_manager.h @@ -25,6 +25,7 @@ #include <boost/dll/import.hpp> #include <boost/filesystem.hpp> #include <boost/function.hpp> +#include <boost/shared_ptr.hpp> #include "chunkserver-common/disk_plugin.h" --- a/src/uraft/uraft.cc +++ b/src/uraft/uraft.cc @@ -127,20 +127,20 @@ void uRaft::startElectionTimer() { int timeout = opt_.election_timeout_min + rand() % (opt_.election_timeout_max - opt_.election_timeout_min); - election_timer_.expires_from_now(boost::posix_time::millisec(timeout)); + election_timer_.expires_after(std::chrono::milliseconds(timeout)); election_timer_.async_wait(boost::bind(&uRaft::electionTimeout, this, boost::asio::placeholders::error)); } void uRaft::startHearbeatTimer() { - heartbeat_timer_.expires_from_now(boost::posix_time::millisec(opt_.heartbeat_period)); + heartbeat_timer_.expires_after(std::chrono::milliseconds(opt_.heartbeat_period)); heartbeat_timer_.async_wait(boost::bind(&uRaft::heartbeat, this, boost::asio::placeholders::error)); } void uRaft::signLoyaltyAgreement() { state_.loyalty_agreement = true; - loyalty_agreement_timer_.expires_from_now(boost::posix_time::millisec(opt_.election_timeout_min)); + loyalty_agreement_timer_.expires_after(std::chrono::milliseconds(opt_.election_timeout_min)); loyalty_agreement_timer_.async_wait([this](const boost::system::error_code & error) { if (!error) { state_.loyalty_agreement = false; --- a/src/uraft/uraft.h +++ b/src/uraft/uraft.h @@ -4,6 +4,7 @@ #include <boost/array.hpp> #include <boost/asio.hpp> +#include <boost/asio/steady_timer.hpp> /*! \brief Implementation of modified Raft consensus algorithm. * @@ -162,8 +163,8 @@ protected: boost::asio::io_context &io_service_; boost::asio::ip::udp::socket socket_; - boost::asio::deadline_timer election_timer_,heartbeat_timer_; - boost::asio::deadline_timer loyalty_agreement_timer_; + boost::asio::steady_timer election_timer_,heartbeat_timer_; + boost::asio::steady_timer loyalty_agreement_timer_; boost::array<uint8_t,kMaxPacketLength> packet_data_; boost::asio::ip::udp::endpoint sender_endpoint_; --- a/src/uraft/uraftcontroller.cc +++ b/src/uraft/uraftcontroller.cc @@ -17,6 +17,7 @@ #include <boost/bind.hpp> #include <boost/lexical_cast.hpp> #include <boost/version.hpp> +#include <boost/chrono.hpp> uRaftController::uRaftController(boost::asio::io_context &ios) : uRaftStatus(ios), @@ -48,11 +49,11 @@ return; } - check_cmd_status_timer_.expires_from_now(boost::posix_time::millisec(opt_.check_cmd_status_period)); + check_cmd_status_timer_.expires_after(std::chrono::milliseconds(opt_.check_cmd_status_period)); check_cmd_status_timer_.async_wait(boost::bind(&uRaftController::checkCommandStatus, this, boost::asio::placeholders::error)); - check_node_status_timer_.expires_from_now(boost::posix_time::millisec(opt_.check_node_status_period)); + check_node_status_timer_.expires_after(std::chrono::milliseconds(opt_.check_node_status_period)); check_node_status_timer_.async_wait(boost::bind(&uRaftController::checkNodeStatus, this, boost::asio::placeholders::error)); @@ -179,7 +180,7 @@ } } - check_cmd_status_timer_.expires_from_now(boost::posix_time::millisec(opt_.check_cmd_status_period)); + check_cmd_status_timer_.expires_after(std::chrono::milliseconds(opt_.check_cmd_status_period)); check_cmd_status_timer_.async_wait(boost::bind(&uRaftController::checkCommandStatus, this, boost::asio::placeholders::error)); } @@ -221,13 +222,13 @@ } } - check_node_status_timer_.expires_from_now(boost::posix_time::millisec(opt_.check_node_status_period)); + check_node_status_timer_.expires_after(std::chrono::milliseconds(opt_.check_node_status_period)); check_node_status_timer_.async_wait(boost::bind(&uRaftController::checkNodeStatus, this, boost::asio::placeholders::error)); } void uRaftController::setSlowCommandTimeout(int timeout) { - cmd_timeout_timer_.expires_from_now(boost::posix_time::millisec(timeout)); + cmd_timeout_timer_.expires_after(std::chrono::milliseconds(timeout)); cmd_timeout_timer_.async_wait([this](const boost::system::error_code & error) { if (!error) { syslog(LOG_ERR, "Metadata server mode switching timeout"); --- a/src/uraft/uraftcontroller.h +++ b/src/uraft/uraftcontroller.h @@ -75,9 +75,8 @@ void startFloatingIpManager(); void stopFloatingIpManager(); -protected: - boost::asio::deadline_timer check_cmd_status_timer_,check_node_status_timer_; - boost::asio::deadline_timer cmd_timeout_timer_; + boost::asio::steady_timer check_cmd_status_timer_,check_node_status_timer_; + boost::asio::steady_timer cmd_timeout_timer_; pid_t command_pid_; int command_type_; /// Last run command type. Timer command_timer_;

