$ git diff --patch-with-stat --summary 59ecacad1d3fb38a960b01c165521f7bc2609923..80f5ae389ec7c1e6f214a43d56054050328e3a11
22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch | 27 ++++++++++++
89d6c18e223935a89526362c45c9ca424d1f5d1c.patch | 43 +++++++++++++++++++
f8af93cc22ad3867cecc2973ebd3c8c995903237.patch | 59 ++++++++++++++++++++++++++
invesalius.spec | 36 +++++++++-------
4 files changed, 149 insertions(+), 16 deletions(-)
create mode 100644 22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch
create mode 100644 89d6c18e223935a89526362c45c9ca424d1f5d1c.patch
create mode 100644 f8af93cc22ad3867cecc2973ebd3c8c995903237.patch
diff --git a/22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch b/22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch
new file mode 100644
index 0000000..0296271
--- /dev/null
+++ b/22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch
@@ -0,0 +1,27 @@
+From 22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06 Mon Sep 17 00:00:00 2001
+From: Thiago Franco de Moraes <totonixsame@gmail.com>
+Date: Wed, 8 Feb 2023 22:15:45 -0300
+Subject: [PATCH] GDCM 3.0.21 doesn't have Trace_DebugOff and Trace_WarningOff
+
+---
+ invesalius/reader/dicom_reader.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py
+index b2d6514b0..6b836af4e 100644
+--- a/invesalius/reader/dicom_reader.py
++++ b/invesalius/reader/dicom_reader.py
+@@ -25,8 +25,11 @@
+ import gdcm
+
+ # Not showing GDCM warning and debug messages
+-gdcm.Trace_DebugOff()
+-gdcm.Trace_WarningOff()
++try:
++ gdcm.Trace_DebugOff()
++ gdcm.Trace_WarningOff()
++except AttributeError:
++ pass
+
+ import glob
+ import plistlib
diff --git a/89d6c18e223935a89526362c45c9ca424d1f5d1c.patch b/89d6c18e223935a89526362c45c9ca424d1f5d1c.patch
new file mode 100644
index 0000000..950cba1
--- /dev/null
+++ b/89d6c18e223935a89526362c45c9ca424d1f5d1c.patch
@@ -0,0 +1,43 @@
+From 89d6c18e223935a89526362c45c9ca424d1f5d1c Mon Sep 17 00:00:00 2001
+From: Thiago Franco de Moraes <totonixsame@gmail.com>
+Date: Tue, 10 May 2022 16:02:27 -0300
+Subject: [PATCH] Converted dicom_reader.py to vtkmodules
+
+---
+ invesalius/reader/dicom_reader.py | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py
+index b7580b537..b2d6514b0 100644
+--- a/invesalius/reader/dicom_reader.py
++++ b/invesalius/reader/dicom_reader.py
+@@ -23,14 +23,16 @@
+ from multiprocessing import cpu_count
+
+ import gdcm
+-import vtk
+
+ # Not showing GDCM warning and debug messages
+ gdcm.Trace_DebugOff()
+ gdcm.Trace_WarningOff()
++
+ import glob
+ import plistlib
+
++from vtkmodules.vtkCommonCore import vtkFileOutputWindow, vtkOutputWindow
++
+ import invesalius.constants as const
+ import invesalius.reader.dicom as dicom
+ import invesalius.reader.dicom_grouper as dicom_grouper
+@@ -351,9 +353,9 @@ def GetDicomGroups(self, path, recursive):
+ log_path = utils.encode(
+ str(inv_paths.USER_LOG_DIR.joinpath("vtkoutput.txt")), const.FS_ENCODE
+ )
+- fow = vtk.vtkFileOutputWindow()
++ fow = vtkFileOutputWindow()
+ fow.SetFileName(log_path)
+- ow = vtk.vtkOutputWindow()
++ ow = vtkOutputWindow()
+ ow.SetInstance(fow)
+
+ y = yGetDicomGroups(path, recursive)
diff --git a/f8af93cc22ad3867cecc2973ebd3c8c995903237.patch b/f8af93cc22ad3867cecc2973ebd3c8c995903237.patch
new file mode 100644
index 0000000..fa895cd
--- /dev/null
+++ b/f8af93cc22ad3867cecc2973ebd3c8c995903237.patch
@@ -0,0 +1,59 @@
+From f8af93cc22ad3867cecc2973ebd3c8c995903237 Mon Sep 17 00:00:00 2001
+From: Thiago Franco de Moraes <totonixsame@gmail.com>
+Date: Sat, 5 Nov 2022 20:07:40 -0300
+Subject: [PATCH] forcing colors to int because of wxpython 4.2
+
+---
+ invesalius/data/viewer_slice.py | 2 +-
+ invesalius/gui/task_surface.py | 2 +-
+ invesalius/gui/widgets/gradient.py | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py
+index ff6344ed9..d423e0137 100644
+--- a/invesalius/data/viewer_slice.py
++++ b/invesalius/data/viewer_slice.py
+@@ -1526,7 +1526,7 @@ def set_slice_number(self, index):
+
+ def ChangeSliceNumber(self, index):
+ #self.set_slice_number(index)
+- self.scroll.SetThumbPosition(index)
++ self.scroll.SetThumbPosition(int(index))
+ pos = self.scroll.GetThumbPosition()
+ self.set_slice_number(pos)
+ self.interactor.Render()
+diff --git a/invesalius/gui/task_surface.py b/invesalius/gui/task_surface.py
+index 384fdb441..ae9ee2f43 100644
+--- a/invesalius/gui/task_surface.py
++++ b/invesalius/gui/task_surface.py
+@@ -587,7 +587,7 @@ def InsertNewSurface(self, surface):
+ self.combo_surface_name.SetSelection(i)
+ transparency = 100*surface.transparency
+ self.button_colour.SetColour(colour)
+- self.slider_transparency.SetValue(transparency)
++ self.slider_transparency.SetValue(int(transparency))
+ # Publisher.sendMessage('Update surface data', (index))
+
+ def OnComboName(self, evt):
+diff --git a/invesalius/gui/widgets/gradient.py b/invesalius/gui/widgets/gradient.py
+index dd713240d..52304154c 100644
+--- a/invesalius/gui/widgets/gradient.py
++++ b/invesalius/gui/widgets/gradient.py
+@@ -340,7 +340,7 @@ def _is_over_what(self, position_x):
+ return 0
+
+ def SetColour(self, colour):
+- self.colour = colour
++ self.colour = [int(i) for i in colour]
+
+ def SetGradientColours(self, colors):
+ self._gradient_colours = colors
+@@ -509,7 +509,7 @@ def OnMaxMouseWheel(self, e):
+ self._GenerateEvent(myEVT_THRESHOLD_CHANGED)
+
+ def SetColour(self, colour):
+- colour = list(colour[:3]) + [90]
++ colour = list(int(i) for i in colour[:3]) + [90]
+ self.colour = colour
+ self.gradient_slider.SetColour(colour)
+ self.gradient_slider.Refresh()
diff --git a/invesalius.spec b/invesalius.spec
index 0a2fcc0..e80e9d3 100644
--- a/invesalius.spec
+++ b/invesalius.spec
@@ -9,11 +9,15 @@ Group: Sciences/Other
License: GPLv2
Summary: 3D medical imaging reconstruction software
Version: 3.1.99998
-Release: 5
+Release: 7
URL: https://invesalius.github.io
Source0: https://github.com/invesalius/invesalius3/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: %{name}.xpm
Patch0: invesalius3-3.1.99998-python3.11.patch
+# Make it work with the version of gdcm we ship
+Patch1: https://github.com/invesalius/invesalius3/commit/89d6c18e223935a89526362c45c9ca424d1f5d1c.patch
+Patch2: https://github.com/invesalius/invesalius3/commit/22a0da312891c9dd2d4fbbdd3a838fd8dba4ee06.patch
+Patch3: https://github.com/invesalius/invesalius3/commit/f8af93cc22ad3867cecc2973ebd3c8c995903237.patch
BuildRequires: imagemagick
BuildRequires: pkgconfig(python3)
@@ -23,22 +27,22 @@ BuildRequires: python3dist(numpy)
BuildRequires: texlive
%endif
-Requires: python3dist(cython)
Requires: python-gdcm
-Requires: python3dist(h5py)
-Requires: python3dist(keras)
-Requires: python3dist(imageio)
-Requires: python3dist(nibabel)
-Requires: python3dist(numpy)
-Requires: python3dist(pillow)
-Requires: python3dist(psutil)
-Requires: python3dist(pyacvd)
-Requires: python3dist(pypubsub)
-Requires: python3dist(scipy)
-Requires: python3dist(pyserial)
-Requires: python3dist(scikit-image)
-Requires: python3dist(theano)
-Requires: python3dist(wxpython)
+Requires: python%{pyver}dist(cython)
+Requires: python%{pyver}dist(h5py)
+Requires: python%{pyver}dist(keras)
+Requires: python%{pyver}dist(imageio)
+Requires: python%{pyver}dist(nibabel)
+Requires: python%{pyver}dist(numpy)
+Requires: python%{pyver}dist(pillow)
+Requires: python%{pyver}dist(psutil)
+Requires: python%{pyver}dist(pyacvd)
+Requires: python%{pyver}dist(pypubsub)
+Requires: python%{pyver}dist(scipy)
+Requires: python%{pyver}dist(pyserial)
+Requires: python%{pyver}dist(scikit-image)
+Requires: python%{pyver}dist(theano)
+Requires: python%{pyver}dist(wxpython)
Requires: python-vtk
%description