[med-svn] [Git][med-team/odil][master] fix(debian): fix Boost 1.90 build (Closes: #1128135)
Anton Gladky (@gladk)
gitlab at salsa.debian.org
Fri Mar 20 06:07:26 GMT 2026
Anton Gladky pushed to branch master at Debian Med / odil
Commits:
f3f90b0c by Anton Gladky at 2026-03-20T07:07:16+01:00
fix(debian): fix Boost 1.90 build (Closes: #1128135)
- Remove unused Boost.DateTime build dependency.
- Add lintian-override for t64 library transition.
- - - - -
5 changed files:
- debian/changelog
- + debian/patches/fix_boost190.patch
- debian/patches/series
- debian/patches/update-python-install-path.patch
- + debian/source/lintian-overrides
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,12 @@
+odil (0.13.0-3) unstable; urgency=medium
+
+ * Team upload.
+ * Fix build failure with Boost >= 1.90. (Closes: #1128135)
+ * Remove now-unused Boost.DateTime build dependency.
+ * Add lintian-override for t64 library transition.
+
+ -- Anton Gladky <gladk at debian.org> Fri, 20 Mar 2026 07:05:36 +0100
+
odil (0.13.0-2) unstable; urgency=medium
* Team upload.
=====================================
debian/patches/fix_boost190.patch
=====================================
@@ -0,0 +1,343 @@
+Description: Fix build failures with Boost >= 1.90
+ Replace deprecated boost::asio::deadline_timer with steady_timer (removed
+ in Boost 1.90). Also remove now-unused Boost.System and Boost.DateTime
+ build dependencies, and switch all posix_time usage to std::chrono.
+Author: Anton Gladky <gladk at debian.org>
+Bug-Debian: https://bugs.debian.org/1128135
+Forwarded: no
+
+--- odil-0.13.0.orig/src/CMakeLists.txt
++++ odil-0.13.0/src/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-find_package(Boost REQUIRED COMPONENTS date_time filesystem log system)
++find_package(Boost REQUIRED COMPONENTS filesystem log)
+ find_package(ICU REQUIRED COMPONENTS uc)
+ find_package(JsonCpp REQUIRED)
+ if(WITH_DCMTK)
+--- odil-0.13.0.orig/wrappers/js/CMakeLists.txt
++++ odil-0.13.0/wrappers/js/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-find_package(Boost REQUIRED COMPONENTS system)
++find_package(Boost REQUIRED)
+
+ if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/icu/source/common")
+ file(
+
+--- odil-0.13.0.orig/tests/code/EchoSCP.cpp
++++ odil-0.13.0/tests/code/EchoSCP.cpp
+@@ -23,7 +23,7 @@ struct Status
+ void run_server(Status * status)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+--- odil-0.13.0.orig/tests/code/FindSCP.cpp
++++ odil-0.13.0/tests/code/FindSCP.cpp
+@@ -8,6 +8,8 @@
+ #include <thread>
+ #include <vector>
+
++#include <fstream>
++
+ #include <boost/asio.hpp>
+ #include <boost/filesystem.hpp>
+
+@@ -79,7 +81,7 @@ private:
+ void run_server(Status * status)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+--- odil-0.13.0.orig/tests/code/GetSCP.cpp
++++ odil-0.13.0/tests/code/GetSCP.cpp
+@@ -8,6 +8,7 @@
+ #include <thread>
+ #include <vector>
+
++#include <fstream>
+ #include <boost/asio.hpp>
+ #include <boost/filesystem.hpp>
+
+@@ -91,7 +92,7 @@ private:
+ void run_server(Status * status)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+--- odil-0.13.0.orig/tests/code/MoveSCP.cpp
++++ odil-0.13.0/tests/code/MoveSCP.cpp
+@@ -7,6 +7,7 @@
+ #include <thread>
+ #include <vector>
+
++#include <fstream>
+ #include <boost/asio.hpp>
+ #include <boost/filesystem.hpp>
+
+@@ -121,7 +122,7 @@ private:
+ void run_server(Status * status)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+--- odil-0.13.0.orig/tests/code/NCreateSCP.cpp
++++ odil-0.13.0/tests/code/NCreateSCP.cpp
+@@ -23,7 +23,7 @@ struct Status
+ void run_server(Status * status)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+--- odil-0.13.0.orig/tests/code/SCPDispatcher.cpp
++++ odil-0.13.0/tests/code/SCPDispatcher.cpp
+@@ -5,6 +5,8 @@
+ #include <memory>
+ #include <thread>
+
++#include <boost/asio.hpp>
++
+ #include "odil/Association.h"
+ #include "odil/EchoSCP.h"
+ #include "odil/Exception.h"
+@@ -22,7 +24,7 @@ struct Status
+ void run_server(Status * status, bool with_echo)
+ {
+ odil::Association association;
+- association.set_tcp_timeout(boost::posix_time::seconds(1));
++ association.set_tcp_timeout(std::chrono::seconds(1));
+
+ try
+ {
+
+
+Index: odil-0.13.0/src/odil/Association.cpp
+===================================================================
+--- odil-0.13.0.orig/src/odil/Association.cpp
++++ odil-0.13.0/src/odil/Association.cpp
+@@ -9,6 +9,7 @@
+ #include "Association.h"
+
+ #include <algorithm>
++#include <chrono>
+ #include <functional>
+ #include <map>
+ #include <string>
+@@ -46,8 +47,8 @@ Association
+ _transfer_syntaxes_by_abstract_syntax(), _transfer_syntaxes_by_id(),
+ _next_message_id(1)
+ {
+- this->set_tcp_timeout(boost::posix_time::pos_infin);
+- this->set_message_timeout(boost::posix_time::seconds(30));
++ this->set_tcp_timeout(boost::asio::steady_timer::duration::max());
++ this->set_message_timeout(std::chrono::seconds(30));
+ }
+
+ Association
+Index: odil-0.13.0/src/odil/MoveSCU.cpp
+===================================================================
+--- odil-0.13.0.orig/src/odil/MoveSCU.cpp
++++ odil-0.13.0/src/odil/MoveSCU.cpp
+@@ -104,7 +104,7 @@ MoveSCU
+ while(!done)
+ {
+ // Use a small timeout to avoid blocking for a long time.
+- boost::posix_time::milliseconds const timeout(10);
++ std::chrono::milliseconds const timeout(10);
+ store_association.set_tcp_timeout(timeout);
+ store_association.set_message_timeout(timeout);
+
+Index: odil-0.13.0/src/odil/dul/StateMachine.cpp
+===================================================================
+--- odil-0.13.0.orig/src/odil/dul/StateMachine.cpp
++++ odil-0.13.0/src/odil/dul/StateMachine.cpp
+@@ -38,7 +38,7 @@ namespace dul
+
+ StateMachine
+ ::StateMachine()
+-: _state(State::Sta1), _timeout(boost::posix_time::pos_infin),
++: _state(State::Sta1), _timeout(boost::asio::steady_timer::duration::max()),
+ _artim_timer(_transport.get_service()),
+ _association_acceptor(default_association_acceptor)
+ {
+@@ -265,7 +265,7 @@ StateMachine
+ return;
+
+
+- auto const canceled = this->_artim_timer.expires_from_now(this->_timeout);
++ auto const canceled = this->_artim_timer.expires_after(this->_timeout);
+ if(canceled != 0)
+ {
+ throw Exception("ARTIM timer started with pending operations");
+@@ -300,7 +300,7 @@ StateMachine
+ return;
+
+
+- this->_artim_timer.expires_at(boost::posix_time::pos_infin);
++ this->_artim_timer.expires_at(boost::asio::steady_timer::time_point::max());
+ this->_transport.get_service().poll();
+ // FIXME: check that the timer was aborted
+ /*
+Index: odil-0.13.0/src/odil/dul/StateMachine.h
+===================================================================
+--- odil-0.13.0.orig/src/odil/dul/StateMachine.h
++++ odil-0.13.0/src/odil/dul/StateMachine.h
+@@ -64,7 +64,7 @@ public:
+ };
+
+ /// @brief Duration of the timeout.
+- typedef boost::asio::deadline_timer::duration_type duration_type;
++ typedef boost::asio::steady_timer::duration duration_type;
+
+ /// @brief Constructor, initializing to Sta1.
+ StateMachine();
+@@ -156,7 +156,7 @@ private:
+ duration_type _timeout;
+
+ /// @brief Association Request/Reject/Release Timer.
+- boost::asio::deadline_timer _artim_timer;
++ boost::asio::steady_timer _artim_timer;
+
+ /// @brief Callback checking whether an association request is acceptable.
+ AssociationAcceptor _association_acceptor;
+Index: odil-0.13.0/src/odil/dul/Transport.cpp
+===================================================================
+--- odil-0.13.0.orig/src/odil/dul/Transport.cpp
++++ odil-0.13.0/src/odil/dul/Transport.cpp
+@@ -11,8 +11,9 @@
+ #include <memory>
+ #include <string>
+
++#include <chrono>
++
+ #include <boost/asio.hpp>
+-#include <boost/date_time.hpp>
+
+ #include "odil/Exception.h"
+ #include "odil/logging.h"
+@@ -25,7 +26,7 @@ namespace dul
+
+ Transport
+ ::Transport()
+-: _service(), _socket(nullptr), _timeout(boost::posix_time::pos_infin),
++: _service(), _socket(nullptr), _timeout(boost::asio::steady_timer::duration::max()),
+ _deadline(_service)
+ {
+ // Nothing else
+@@ -235,7 +236,15 @@ void
+ Transport
+ ::_start_deadline(Source & source, boost::system::error_code & error)
+ {
+- auto const canceled = this->_deadline.expires_from_now(this->_timeout);
++ std::size_t canceled;
++ if(this->_timeout == boost::asio::steady_timer::duration::max())
++ {
++ canceled = this->_deadline.expires_at(boost::asio::steady_timer::time_point::max());
++ }
++ else
++ {
++ canceled = this->_deadline.expires_after(this->_timeout);
++ }
+ if(canceled != 0)
+ {
+ throw Exception("TCP timer started with pending operations");
+@@ -254,7 +263,7 @@ void
+ Transport
+ ::_stop_deadline()
+ {
+- this->_deadline.expires_at(boost::posix_time::pos_infin);
++ this->_deadline.expires_at(boost::asio::steady_timer::time_point::max());
+ }
+
+ void
+Index: odil-0.13.0/src/odil/dul/Transport.h
+===================================================================
+--- odil-0.13.0.orig/src/odil/dul/Transport.h
++++ odil-0.13.0/src/odil/dul/Transport.h
+@@ -12,8 +12,9 @@
+ #include <memory>
+ #include <string>
+
++#include <chrono>
++
+ #include <boost/asio.hpp>
+-#include <boost/date_time.hpp>
+
+ // NOTE: the io_service type alias has been removed in boost 1.87.0
+ #if BOOST_VERSION >= 108700
+@@ -47,7 +48,7 @@ struct ODIL_API Transport
+ typedef boost::asio::ip::tcp::socket Socket;
+
+ /// @brief Duration of the timeout.
+- typedef boost::asio::deadline_timer::duration_type duration_type;
++ typedef boost::asio::steady_timer::duration duration_type;
+
+ /// @brief Constructor.
+ Transport();
+@@ -98,7 +99,7 @@ private:
+ boost::asio::io_service _service;
+ std::shared_ptr<Socket> _socket;
+ duration_type _timeout;
+- boost::asio::deadline_timer _deadline;
++ boost::asio::steady_timer _deadline;
+
+ std::shared_ptr<boost::asio::ip::tcp::acceptor> _acceptor;
+
+Index: odil-0.13.0/wrappers/python/Association.cpp
+===================================================================
+--- odil-0.13.0.orig/wrappers/python/Association.cpp
++++ odil-0.13.0/wrappers/python/Association.cpp
+@@ -6,8 +6,9 @@
+ * for details.
+ ************************************************************************/
+
++#include <chrono>
++
+ #include <boost/asio.hpp>
+-#include <boost/date_time/posix_time/posix_time.hpp>
+ #include <pybind11/pybind11.h>
+
+ #include "odil/Association.h"
+@@ -33,13 +34,14 @@ void receive_association(
+
+ float get_tcp_timeout(odil::Association const& association)
+ {
+- return association.get_tcp_timeout().total_microseconds()/1000000.f;
++ return std::chrono::duration_cast<std::chrono::microseconds>(
++ association.get_tcp_timeout()).count() / 1000000.f;
+ }
+
+ void set_tcp_timeout(odil::Association& association, float seconds)
+ {
+ association.set_tcp_timeout(
+- boost::posix_time::microseconds(int(seconds*1000000.f)));
++ std::chrono::microseconds(int(seconds*1000000.f)));
+ }
+
+ }
+Index: odil-0.13.0/src/odil/SCPDispatcher.cpp
+===================================================================
+--- odil-0.13.0.orig/src/odil/SCPDispatcher.cpp
++++ odil-0.13.0/src/odil/SCPDispatcher.cpp
+@@ -12,6 +12,7 @@
+ #include "odil/SCPDispatcher.h"
+ #include "odil/Value.h"
+
++#include <iomanip>
+ #include <map>
+ #include <memory>
+ #include <sstream>
=====================================
debian/patches/series
=====================================
@@ -5,3 +5,7 @@ remove-network-unit-tests.patch
fix-g++-13.patch
fix-boost-asio-1.87.patch
update-python-install-path.patch
+boost190.aptch
+fix-deadline-timer
+fix_tests.patch
+fix_boost190.patch
=====================================
debian/patches/update-python-install-path.patch
=====================================
@@ -2,8 +2,10 @@ Description: Install python in dist-packages
Author: Julien Lamy <lamy at unistra.fr>
Last-Update: 2025-08-19
Forwarded: not-needed
---- a/wrappers/python/CMakeLists.txt
-+++ b/wrappers/python/CMakeLists.txt
+Index: odil/wrappers/python/CMakeLists.txt
+===================================================================
+--- odil.orig/wrappers/python/CMakeLists.txt
++++ odil/wrappers/python/CMakeLists.txt
@@ -32,7 +32,7 @@ execute_process(
COMMAND ${Python_EXECUTABLE}
-c "import os; import sysconfig; \
@@ -13,8 +15,10 @@ Forwarded: not-needed
print(path.replace(os.path.sep, '/'))"
OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
OUTPUT_STRIP_TRAILING_WHITESPACE)
---- a/applications/CMakeLists.txt
-+++ b/applications/CMakeLists.txt
+Index: odil/applications/CMakeLists.txt
+===================================================================
+--- odil.orig/applications/CMakeLists.txt
++++ odil/applications/CMakeLists.txt
@@ -11,7 +11,7 @@ if(BUILD_PYTHON_WRAPPERS)
COMMAND ${Python_EXECUTABLE}
-c "import os; import sysconfig; \
=====================================
debian/source/lintian-overrides
=====================================
@@ -0,0 +1 @@
+odil source: version-substvar-for-external-package Conflicts ${source:Version} libodil0t64 -> libodil0
View it on GitLab: https://salsa.debian.org/med-team/odil/-/commit/f3f90b0cf48523ee88452ebd3daeb2efb0b3415b
--
View it on GitLab: https://salsa.debian.org/med-team/odil/-/commit/f3f90b0cf48523ee88452ebd3daeb2efb0b3415b
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260320/da96b205/attachment-0001.htm>
More information about the debian-med-commit
mailing list