[med-svn] [Git][med-team/sight][master] 2 commits: Revert "Attempt to get a reproducible build"

Flavien Bridault (@fbridault-guest) gitlab at salsa.debian.org
Mon Aug 24 14:14:46 BST 2026



Flavien Bridault pushed to branch master at Debian Med / sight


Commits:
6b171bd0 by Flavien Bridault at 2026-08-24T14:31:44+02:00
Revert "Attempt to get a reproducible build"

This reverts commit 09e8551ed54a069f506a69c5c9103b6c58790312.

- - - - -
e86f3b2d by Flavien Bridault at 2026-08-24T15:10:22+02:00
Fix runtime issues with sightviewer

- - - - -


7 changed files:

- debian/changelog
- debian/control
- + debian/patches/ogre-1.14.patch
- debian/patches/remove-itk-fft.patch
- − debian/patches/reproducible-glob-order.patch
- debian/patches/series
- debian/source/local-options


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+sight (26.0.0-2) UNRELEASED; urgency=medium
+
+  * d/p/: Added a patch to fix runtime crash with Ogre 1.14
+    Remove unsupported ITKFFT module related code
+
+ -- Flavien Bridault <fbridault at ircad.fr>  Mon, 24 Aug 2026 14:34:01 +0200
+
 sight (26.0.0-1) unstable; urgency=medium
 
   * Team upload.


=====================================
debian/control
=====================================
@@ -8,7 +8,7 @@ Build-Depends:
  binutils-gold,
  cmake,
  dcmtk,
- debhelper-compat (= 13),
+ debhelper-compat (= 14),
  dh-exec,
  libarchive-dev,
  libboost-date-time-dev,


=====================================
debian/patches/ogre-1.14.patch
=====================================
@@ -0,0 +1,73 @@
+Description: Fix runtime with Ogre 1.14
+Author: Flavien Bridault <fbridault at ircad.fr>
+Forwarded: https://git.ircad.fr/sight/sight/-/work_items/1428
+--- sight.orig/lib/viz/scene3d/utils.cpp
++++ sight/lib/viz/scene3d/utils.cpp
+@@ -198,7 +198,11 @@
+ #if defined(_WIN32)
+             const auto ogre_plugins_path = ogre_lib_path.parent_path() / "plugins" / "ogre";
+ #else
+-            const auto ogre_plugins_path = ogre_lib_path / "OGRE";
++            auto ogre_plugins_path = ogre_lib_path / "OGRE";
++            if(std::filesystem::exists(ogre_main_path))
++            {
++                ogre_plugins_path = std::format("{}-{}.{}", ogre_plugins_path.string(), OGRE_VERSION_MAJOR, OGRE_VERSION_MINOR);
++            }
+ #endif
+ 
+             // Add render system plugin
+--- sight.orig/module/viz/scene3d/adaptor/fragments_info.cpp
++++ sight/module/viz/scene3d/adaptor/fragments_info.cpp
+@@ -1,6 +1,6 @@
+ /************************************************************************
+  *
+- * Copyright (C) 2020-2025 IRCAD France
++ * Copyright (C) 2020-2026 IRCAD France
+  * Copyright (C) 2020 IHU Strasbourg
+  *
+  * This file is part of Sight.
+@@ -334,6 +334,8 @@
+     if(rect.width() != 0 && rect.height() != 0)
+     {
+         this->destroy_compositor();
++        static int i = 0;
++        m_compositor_name = gen_id("Snapshot_C") + "_" + std::to_string(i++);
+         this->create_compositor(static_cast<int>(rect.width()), static_cast<int>(rect.height()));
+         layer->get_render_target()->addListener(this);
+     }
+--- sight.orig/module/viz/scene3d_qt/window.cpp
++++ sight/module/viz/scene3d_qt/window.cpp
+@@ -1,6 +1,6 @@
+ /************************************************************************
+  *
+- * Copyright (C) 2014-2025 IRCAD France
++ * Copyright (C) 2014-2026 IRCAD France
+  * Copyright (C) 2014-2021 IHU Strasbourg
+  *
+  * This file is part of Sight.
+@@ -577,6 +577,8 @@
+     auto& mgr = Ogre::TextureManager::getSingleton();
+ 
+     unsigned i = 0;
++
++    static unsigned int j = 0;
+     for(auto& render_target : m_render_targets)
+     {
+         const auto layer = render_target.layer.lock();
+@@ -587,7 +589,7 @@
+         }
+ 
+         render_target.texture = mgr.createManual(
+-            "RttTex" + std::to_string(m_id) + "_" + std::to_string(i++),
++            "RttTex" + std::to_string(m_id) + "_" + std::to_string(i++) + "_" + std::to_string(j++),
+             Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
+             Ogre::TEX_TYPE_2D,
+             static_cast<uint>(_w),
+@@ -684,6 +686,7 @@
+ 
+             const auto vp_width  = static_cast<float>(viewport->getActualWidth());
+             const auto vp_height = static_cast<float>(viewport->getActualHeight());
++
+             SIGHT_ASSERT("Width and height should be strictly positive", vp_width > 0 && vp_height > 0);
+ 
+             viewport->getCamera()->setAspectRatio(vp_width / vp_height);


=====================================
debian/patches/remove-itk-fft.patch
=====================================
@@ -1,9 +1,9 @@
 Author: Flavien Bridault <fbridault at ircad.fr>
 Description: Remove service that requires ITKFFT which is not available on i386
 Forwarded: not-needed
---- a/lib/filter/image/CMakeLists.txt
-+++ b/lib/filter/image/CMakeLists.txt
-@@ -7,8 +7,8 @@ if(MSVC)
+--- sight.orig/lib/filter/image/CMakeLists.txt
++++ sight/lib/filter/image/CMakeLists.txt
+@@ -7,8 +7,8 @@
      target_include_directories(filter_image SYSTEM PRIVATE ${VXL_CORE_INCLUDE_DIRS})
  endif()
  
@@ -14,8 +14,8 @@ Forwarded: not-needed
  
  if(ITK_VERSION_MAJOR GREATER 4)
      find_package(ITK QUIET COMPONENTS ITKSmoothing ITKRegistrationMethodsv4 REQUIRED)
---- a/module/filter/image/rc/plugin.xml
-+++ b/module/filter/image/rc/plugin.xml
+--- sight.orig/module/filter/image/rc/plugin.xml
++++ sight/module/filter/image/rc/plugin.xml
 @@ -56,12 +56,6 @@
      </extension>
  
@@ -29,7 +29,7 @@ Forwarded: not-needed
          <type>sight::service::filter</type>
          <service>sight::module::filter::image::matrix_regressor</service>
          <object>sight::data::vector</object>
---- a/lib/filter/image/test/ut/mip_matching_registration_test.cpp
+--- sight.orig/lib/filter/image/test/ut/mip_matching_registration_test.cpp
 +++ /dev/null
 @@ -1,214 +0,0 @@
 -/************************************************************************
@@ -246,7 +246,7 @@ Forwarded: not-needed
 -
 -//------------------------------------------------------------------------------
 -} // TEST_SUITE("sight::filter::image::mip_matching_registration")
---- a/module/filter/image/mip_matching_registration.hpp
+--- sight.orig/module/filter/image/mip_matching_registration.hpp
 +++ /dev/null
 @@ -1,117 +0,0 @@
 -/************************************************************************
@@ -366,7 +366,7 @@ Forwarded: not-needed
 -};
 -
 -} // namespace sight::module::filter::image
---- a/module/filter/image/mip_matching_registration.cpp
+--- sight.orig/module/filter/image/mip_matching_registration.cpp
 +++ /dev/null
 @@ -1,80 +0,0 @@
 -/************************************************************************
@@ -449,3 +449,123 @@ Forwarded: not-needed
 -}
 -
 -} // namespace sight::module::filter::image
+--- sight.orig/module/filter/image/plugin.cpp
++++ sight/module/filter/image/plugin.cpp
+@@ -24,10 +24,6 @@
+ 
+ #include "module/filter/image/plugin.hpp"
+ 
+-#if ITK_VERSION_MAJOR >= 5 && ITK_VERSION_MINOR >= 3 && defined(__unix__)
+-#include <itkFFTWFFTImageFilterInitFactory.h>
+-#endif
+-
+ namespace sight::module::filter::image
+ {
+ 
+@@ -44,10 +40,6 @@
+ 
+ void plugin::start()
+ {
+-#if ITK_VERSION_MAJOR >= 5 && ITK_VERSION_MINOR >= 3 && defined(__unix__)
+-    auto factory = itk::FFTWFFTImageFilterInitFactory::New();
+-    factory->RegisterFactories();
+-#endif
+ }
+ 
+ //-----------------------------------------------------------------------------
+--- sight.orig/lib/filter/image/mip_matching_registration.cpp
++++ /dev/null
+@@ -1,49 +0,0 @@
+-/************************************************************************
+- *
+- * Copyright (C) 2025 IRCAD France
+- *
+- * This file is part of Sight.
+- *
+- * Sight is free software: you can redistribute it and/or modify it under
+- * the terms of the GNU Lesser General Public License as published by
+- * the Free Software Foundation, either version 3 of the License, or
+- * (at your option) any later version.
+- *
+- * Sight is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with Sight. If not, see <https://www.gnu.org/licenses/>.
+- *
+- ***********************************************************************/
+-
+-#include "filter/image/mip_matching_registration.hpp"
+-
+-#include "filter/image/detail/mip_matching_registration.hxx"
+-
+-//-----------------------------------------------------------------------------
+-
+-namespace sight::filter::image
+-{
+-
+-//------------------------------------------------------------------------------
+-
+-void mip_matching_register(const data::image& _fixed, const data::image& _moving, data::matrix4& _transform)
+-{
+-    sight::filter::image::registration_dispatch::parameters params
+-    {
+-        .fixed     = _fixed.get_const_sptr(),
+-        .moving    = _moving.get_const_sptr(),
+-        .transform = _transform.get_sptr()
+-    };
+-
+-    core::type type = _moving.type();
+-    core::tools::dispatcher<core::tools::supported_dispatcher_types, sight::filter::image::registration_dispatch>
+-    ::invoke(type, params);
+-}
+-
+-//-----------------------------------------------------------------------------
+-
+-} // namespace sight::filter::image
+--- sight.orig/lib/filter/image/mip_matching_registration.hpp
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/************************************************************************
+- *
+- * Copyright (C) 2017-2025 IRCAD France
+- * Copyright (C) 2017-2020 IHU Strasbourg
+- *
+- * This file is part of Sight.
+- *
+- * Sight is free software: you can redistribute it and/or modify it under
+- * the terms of the GNU Lesser General Public License as published by
+- * the Free Software Foundation, either version 3 of the License, or
+- * (at your option) any later version.
+- *
+- * Sight is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with Sight. If not, see <https://www.gnu.org/licenses/>.
+- *
+- ***********************************************************************/
+-
+-#pragma once
+-
+-#include <sight/filter/image/config.hpp>
+-
+-#include <data/image.hpp>
+-#include <data/matrix4.hpp>
+-
+-#include <numeric>
+-
+-namespace sight::filter::image
+-{
+-
+-SIGHT_FILTER_IMAGE_API void mip_matching_register(
+-    const data::image& _fixed,
+-    const data::image& _moving,
+-    data::matrix4& _transform
+-);
+-
+-} // namespace sight::filter::image


=====================================
debian/patches/reproducible-glob-order.patch deleted
=====================================
@@ -1,53 +0,0 @@
-Author: Flavien Bridault <fbridault at ircad.fr>
-Description: Make CMake glob expansion order deterministic for reproducible builds.
-Forwarded: not-needed
-diff --git i/cmake/build/macros.cmake w/cmake/build/macros.cmake
-index 1d1fc7296..7a0c032a0 100644
---- i/cmake/build/macros.cmake
-+++ w/cmake/build/macros.cmake
-@@ -87,6 +87,7 @@ endmacro()
- # Create the target sources group
- macro(group_maker SIGHT_TARGET)
-     file(GLOB_RECURSE PRJ_SOURCES "${${SIGHT_TARGET}_DIR}/*")
-+    list(SORT PRJ_SOURCES)
-     foreach(SRC ${PRJ_SOURCES})
-         string(REGEX REPLACE ${${SIGHT_TARGET}_DIR} "" REL_DIR "${SRC}")
-         string(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" REL_DIR "${REL_DIR}")
-@@ -96,6 +97,7 @@ macro(group_maker SIGHT_TARGET)
-     endforeach()
- 
-     file(GLOB_RECURSE PRJ_BUILD_SOURCES "${${SIGHT_TARGET}_BUILD_DIR}/*.cpp" "${${SIGHT_TARGET}_BUILD_DIR}/*.hpp")
-+    list(SORT PRJ_BUILD_SOURCES)
-     foreach(SRC ${PRJ_BUILD_SOURCES})
-         source_group("genFiles" FILES ${SRC})
-     endforeach()
-@@ -171,6 +173,8 @@ macro(init_project PRJ_NAME PRJ_TYPE)
-     file(GLOB_RECURSE SOURCES "${PRJ_SOURCE_DIR}/*.cpp" "${PRJ_SOURCE_DIR}/*.c" "${PRJ_SOURCE_DIR}/*.cxx"
-          "${PRJ_SOURCE_DIR}/*.cu"
-     )
-+    list(SORT HEADERS)
-+    list(SORT SOURCES)
- 
-     if(NOT "${PRJ_TYPE}" STREQUAL "TEST" AND NOT "${PRJ_TYPE}" STREQUAL "DOCTEST" AND NOT "${PRJ_TYPE}" STREQUAL
-                                                                                       "GUI_TEST"
-@@ -198,10 +202,12 @@ macro(init_project PRJ_NAME PRJ_TYPE)
-     file(GLOB_RECURSE ${SIGHT_TARGET}_RC_FILES "${PRJ_SOURCE_DIR}/rc/*" "${PRJ_SOURCE_DIR}/ut/rc/*"
-          "${PRJ_SOURCE_DIR}/tu/rc/*"
-     )
-+    list(SORT ${SIGHT_TARGET}_RC_FILES)
-     set(${SIGHT_TARGET}_RC_FILES ${${SIGHT_TARGET}_RC_FILES} PARENT_SCOPE)
-     set_source_files_properties(${${SIGHT_TARGET}_RC_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)
- 
-     file(GLOB ${SIGHT_TARGET}_CMAKE_FILES "${PRJ_SOURCE_DIR}/*.txt" "${PRJ_SOURCE_DIR}/*.cmake")
-+    list(SORT ${SIGHT_TARGET}_CMAKE_FILES)
-     set(${SIGHT_TARGET}_CMAKE_FILES ${${SIGHT_TARGET}_CMAKE_FILES} PARENT_SCOPE)
-     set_source_files_properties(${${SIGHT_TARGET}_CMAKE_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)
- 
-@@ -233,6 +239,7 @@ endmacro()
- # Create a target for the resources
- macro(create_resources_target TARGET TARGET_RC RES_DIR TARGET_RC_DIR)
-     file(GLOB_RECURSE RESOURCES_FILES "${RES_DIR}/*")
-+    list(SORT RESOURCES_FILES)
-     set(CREATED_RESOURCES_LIST)
-     foreach(RESOURCE_FILE ${RESOURCES_FILES})
-         file(RELATIVE_PATH REL_PATH "${RES_DIR}" "${RESOURCE_FILE}")


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
+ogre-1.14.patch
 gcc15.patch
 itk-sized-deallocation.patch
 fix-multi-arch-folder-detection.patch
@@ -5,4 +6,3 @@ lintian_warnings.patch
 remove-itk-fft.patch
 libxml.patch
 libboost1.90.patch
-reproducible-glob-order.patch


=====================================
debian/source/local-options
=====================================
@@ -1,2 +1,2 @@
 unapply-patches
-extend-diff-ignore = ".vscode/*"
\ No newline at end of file
+extend-diff-ignore = "(\.vscode/|\.cache/clangd/|compile_commands.json)"
\ No newline at end of file



View it on GitLab: https://salsa.debian.org/med-team/sight/-/compare/09e8551ed54a069f506a69c5c9103b6c58790312...e86f3b2d4fdfbe317d2af31477fbb721f4c17d0d

-- 
View it on GitLab: https://salsa.debian.org/med-team/sight/-/compare/09e8551ed54a069f506a69c5c9103b6c58790312...e86f3b2d4fdfbe317d2af31477fbb721f4c17d0d
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260824/02907f63/attachment-0001.htm>


More information about the debian-med-commit mailing list