[packages/wesnoth] - fix building with boost 1.87, rel 2

baggins baggins at pld-linux.org
Mon Dec 16 20:34:37 CET 2024


commit d3ac257c3f3deeb3c15d04cd33b3ca89821139a0
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Dec 16 20:20:40 2024 +0100

    - fix building with boost 1.87, rel 2

 boost-1.87.patch | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 wesnoth.spec     |   4 +-
 2 files changed, 197 insertions(+), 1 deletion(-)
---
diff --git a/wesnoth.spec b/wesnoth.spec
index 361273a..6a12c96 100644
--- a/wesnoth.spec
+++ b/wesnoth.spec
@@ -10,7 +10,7 @@ Summary(hu.UTF-8):	Fantasy környezetben játszódó stratégiai játék
 Summary(pl.UTF-8):	Gra strategiczna z motywem fantasy
 Name:		wesnoth
 Version:	1.18.3
-Release:	1
+Release:	2
 Epoch:		1
 License:	GPL v2+
 Group:		X11/Applications/Games/Strategy
@@ -20,6 +20,7 @@ Source1:	%{name}d.init
 Source2:	%{name}.tmpfiles
 Source3:	%{name}.sysconfig
 Source4:	%{name}d.service
+Patch0:		boost-1.87.patch
 URL:		http://www.wesnoth.org/
 BuildRequires:	SDL2-devel >= 2.0.10
 BuildRequires:	SDL2_image-devel >= 2.0.2
@@ -117,6 +118,7 @@ Ten pakiet zawiera pliki danych dla gry Wesnoth.
 
 %prep
 %setup -q
+%patch -P 0 -p1
 
 # don't install locales in %{_datadir}/%{name}
 %{__sed} -i 's,${DATADIR}/${LOCALEDIR},${LOCALEDIR},' CMakeLists.txt
diff --git a/boost-1.87.patch b/boost-1.87.patch
new file mode 100644
index 0000000..109d78c
--- /dev/null
+++ b/boost-1.87.patch
@@ -0,0 +1,194 @@
+From 37ee134d7a17f509982f6ba4fda60a6b1e9acc72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero at lindev.ch>
+Date: Sun, 15 Dec 2024 00:23:39 +0100
+Subject: [PATCH] Fix build with boost >= 1.87.0
+
+Boost 1.87.0 removes some functions that have been deprecated for a few releases, but are still used in wesnoth.
+
+(This is the same as #9652, but backported to the 1.18 branch)
+---
+ src/server/campaignd/server.cpp          | 2 +-
+ src/server/common/forum_user_handler.cpp | 4 ++--
+ src/server/common/forum_user_handler.hpp | 4 ++--
+ src/server/common/server_base.cpp        | 4 ++++
+ src/server/common/server_base.hpp        | 4 ++--
+ src/server/common/user_handler.hpp       | 6 +++---
+ src/server/wesnothd/game.cpp             | 2 ++
+ src/server/wesnothd/server.cpp           | 8 ++++----
+ 8 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/src/server/campaignd/server.cpp b/src/server/campaignd/server.cpp
+index 31a7df8e215e..88a141a0b732 100644
+--- a/src/server/campaignd/server.cpp
++++ b/src/server/campaignd/server.cpp
+@@ -735,7 +735,7 @@ void server::handle_sighup(const boost::system::error_code&, int)
+ 
+ void server::flush_cfg()
+ {
+-	flush_timer_.expires_from_now(std::chrono::minutes(10));
++	flush_timer_.expires_after(std::chrono::minutes(10));
+ 	flush_timer_.async_wait(std::bind(&server::handle_flush, this, std::placeholders::_1));
+ }
+ 
+diff --git a/src/server/common/forum_user_handler.cpp b/src/server/common/forum_user_handler.cpp
+index dfbb80a7dd5c..453653dc9651 100644
+--- a/src/server/common/forum_user_handler.cpp
++++ b/src/server/common/forum_user_handler.cpp
+@@ -207,7 +207,7 @@ std::string fuh::get_tournaments(){
+ 	return conn_.get_tournaments();
+ }
+ 
+-void fuh::async_get_and_send_game_history(boost::asio::io_service& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content) {
++void fuh::async_get_and_send_game_history(boost::asio::io_context& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content) {
+	boost::asio::post([this, &s, player, player_id, offset, &io_service, search_game_name, search_content_type, search_content] {
+		boost::asio::post(io_service, [player, &s, doc = conn_.get_game_history(player_id, offset, search_game_name, search_content_type, search_content)]{
+			s.send_to_player(player, *doc);
+@@ -235,7 +235,7 @@ void fuh::db_set_oos_flag(const std::string& uuid, int game_id){
+ 	conn_.set_oos_flag(uuid, game_id);
+ }
+ 
+-void fuh::async_test_query(boost::asio::io_service& io_service, int limit) {
++void fuh::async_test_query(boost::asio::io_context& io_service, int limit) {
+ 	boost::asio::post([this, limit, &io_service] {
+ 		ERR_UH << "async test query starts!";
+ 		int i = conn_.async_test_query(limit);
+diff --git a/src/server/common/forum_user_handler.hpp b/src/server/common/forum_user_handler.hpp
+index 06189ab512fd..d97412b68b48 100644
+--- a/src/server/common/forum_user_handler.hpp
++++ b/src/server/common/forum_user_handler.hpp
+@@ -133,7 +133,7 @@ class fuh : public user_handler
+ 	 * @param search_content_type The content type to query for (ie: scenario)
+ 	 * @param search_content Query for games using this content ID. Supports leading and/or trailing wildcards.
+ 	 */
+-	void async_get_and_send_game_history(boost::asio::io_service& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content);
++	void async_get_and_send_game_history(boost::asio::io_context& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content);
+ 
+ 	/**
+ 	 * Inserts game related information.
+@@ -203,7 +203,7 @@ class fuh : public user_handler
+ 	 * @param io_service The boost io_service to use to post the query results back to the main boost::asio thread.
+ 	 * @param limit How many recursions to make in the query.
+ 	 */
+-	void async_test_query(boost::asio::io_service& io_service, int limit);
++	void async_test_query(boost::asio::io_context& io_service, int limit);
+ 
+ 	/**
+ 	 * Checks whether a forum thread with @a topic_id exists.
+diff --git a/src/server/common/server_base.cpp b/src/server/common/server_base.cpp
+index 2c1a5817305b..5fd115ff03ee 100644
+--- a/src/server/common/server_base.cpp
++++ b/src/server/common/server_base.cpp
+@@ -43,6 +43,10 @@
+ #endif
+ #include <boost/asio/write.hpp>
+ 
++#ifndef BOOST_NO_EXCEPTIONS
++#include <boost/exception/diagnostic_information.hpp>
++#endif
++
+ #include <array>
+ #include <ctime>
+ #include <functional>
+diff --git a/src/server/common/server_base.hpp b/src/server/common/server_base.hpp
+index 94aac7e25671..e40b6ca3c7a2 100644
+--- a/src/server/common/server_base.hpp
++++ b/src/server/common/server_base.hpp
+@@ -30,7 +30,7 @@
+ #include "serialization/unicode_cast.hpp"
+ #endif
+ 
+-#include <boost/asio/io_service.hpp>
++#include <boost/asio/io_context.hpp>
+ #include <boost/asio/ip/tcp.hpp>
+ #ifndef _WIN32
+ #include <boost/asio/posix/stream_descriptor.hpp>
+@@ -150,7 +150,7 @@ class server_base
+ protected:
+ 	unsigned short port_;
+ 	bool keep_alive_;
+-	boost::asio::io_service io_service_;
++	boost::asio::io_context io_service_;
+ 	boost::asio::ssl::context tls_context_ { boost::asio::ssl::context::sslv23 };
+ 	bool tls_enabled_ { false };
+ 	boost::asio::ip::tcp::acceptor acceptor_v6_;
+diff --git a/src/server/common/user_handler.hpp b/src/server/common/user_handler.hpp
+index cd21b1823cca..c6d777f2d1c7 100644
+--- a/src/server/common/user_handler.hpp
++++ b/src/server/common/user_handler.hpp
+@@ -22,7 +22,7 @@ class config;
+ #include <ctime>
+ #include <string>
+ 
+-#include <boost/asio/io_service.hpp>
++#include <boost/asio/io_context.hpp>
+ 
+ #include "server/wesnothd/player_connection.hpp"
+ 
+@@ -139,13 +139,13 @@ class user_handler
+ 
+ 	virtual std::string get_uuid() = 0;
+ 	virtual std::string get_tournaments() = 0;
+-	virtual void async_get_and_send_game_history(boost::asio::io_service& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content) =0;
++	virtual void async_get_and_send_game_history(boost::asio::io_context& io_service, wesnothd::server& s, wesnothd::player_iterator player, int player_id, int offset, std::string& search_game_name, int search_content_type, std::string& search_content) =0;
+ 	virtual void db_insert_game_info(const std::string& uuid, int game_id, const std::string& version, const std::string& name, int reload, int observers, int is_public, int has_password) = 0;
+ 	virtual void db_update_game_end(const std::string& uuid, int game_id, const std::string& replay_location) = 0;
+ 	virtual void db_insert_game_player_info(const std::string& uuid, int game_id, const std::string& username, int side_number, int is_host, const std::string& faction, const std::string& version, const std::string& source, const std::string& current_user, const std::string& leaders) = 0;
+ 	virtual unsigned long long db_insert_game_content_info(const std::string& uuid, int game_id, const std::string& type, const std::string& name, const std::string& id, const std::string& addon_id, const std::string& addon_version) = 0;
+ 	virtual void db_set_oos_flag(const std::string& uuid, int game_id) = 0;
+-	virtual void async_test_query(boost::asio::io_service& io_service, int limit) = 0;
++	virtual void async_test_query(boost::asio::io_context& io_service, int limit) = 0;
+ 	virtual bool db_topic_id_exists(int topic_id) = 0;
+ 	virtual void db_insert_addon_info(const std::string& instance_version, const std::string& id, const std::string& name, const std::string& type, const std::string& version, bool forum_auth, int topic_id, const std::string uploader) = 0;
+ 	virtual unsigned long long db_insert_login(const std::string& username, const std::string& ip, const std::string& version) = 0;
+diff --git a/src/server/wesnothd/game.cpp b/src/server/wesnothd/game.cpp
+index faeb2550867d..ec95bd43ea5e 100644
+--- a/src/server/wesnothd/game.cpp
++++ b/src/server/wesnothd/game.cpp
+@@ -27,6 +27,8 @@
+ #include <iomanip>
+ #include <sstream>
+ 
++#include <boost/coroutine/exceptions.hpp>
++
+ static lg::log_domain log_server("server");
+ #define ERR_GAME LOG_STREAM(err, log_server)
+ #define WRN_GAME LOG_STREAM(warn, log_server)
+diff --git a/src/server/wesnothd/server.cpp b/src/server/wesnothd/server.cpp
+index 0fcbd5348396..9c666a693489 100644
+--- a/src/server/wesnothd/server.cpp
++++ b/src/server/wesnothd/server.cpp
+@@ -293,14 +293,14 @@ void server::handle_graceful_timeout(const boost::system::error_code& error)
+ 		process_command("msg All games ended. Shutting down now. Reconnect to the new server instance.", "system");
+ 		BOOST_THROW_EXCEPTION(server_shutdown("graceful shutdown timeout"));
+ 	} else {
+-		timer_.expires_from_now(std::chrono::seconds(1));
++		timer_.expires_after(std::chrono::seconds(1));
+ 		timer_.async_wait(std::bind(&server::handle_graceful_timeout, this, std::placeholders::_1));
+ 	}
+ }
+ 
+ void server::start_lan_server_timer()
+ {
+-	lan_server_timer_.expires_from_now(std::chrono::seconds(lan_server_));
++	lan_server_timer_.expires_after(std::chrono::seconds(lan_server_));
+ 	lan_server_timer_.async_wait([this](const boost::system::error_code& ec) { handle_lan_server_shutdown(ec); });
+ }
+ 
+@@ -2120,7 +2120,7 @@ void server::shut_down_handler(
+ 		acceptor_v6_.close();
+ 		acceptor_v4_.close();
+ 
+-		timer_.expires_from_now(std::chrono::seconds(10));
++		timer_.expires_after(std::chrono::seconds(10));
+ 		timer_.async_wait(std::bind(&server::handle_graceful_timeout, this, std::placeholders::_1));
+ 
+ 		process_command(
+@@ -2151,7 +2151,7 @@ void server::restart_handler(const std::string& issuer_name,
+ 		graceful_restart = true;
+ 		acceptor_v6_.close();
+ 		acceptor_v4_.close();
+-		timer_.expires_from_now(std::chrono::seconds(10));
++		timer_.expires_after(std::chrono::seconds(10));
+ 		timer_.async_wait(std::bind(&server::handle_graceful_timeout, this, std::placeholders::_1));
+ 
+ 		start_new_server();
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/wesnoth.git/commitdiff/d3ac257c3f3deeb3c15d04cd33b3ca89821139a0



More information about the pld-cvs-commit mailing list