[gdcm] Update to 2.4.0 and add python3-gdcm package

sebp sebp at fedoraproject.org
Mon Oct 21 10:03:52 UTC 2013


commit 66e851acc11129d89cf7e84ff9791f230c18d69b
Author: Sebastian Pölsterl <sebp at k-d-w.org>
Date:   Mon Oct 21 11:41:27 2013 +0200

    Update to 2.4.0 and add python3-gdcm package

 .gitignore                         |    1 +
 gdcm-0005-support-vtk6.patch       |    6 +-
 gdcm-2.0.14-inplacebuild.patch     |   14 -----
 gdcm-2.0.14-usecopyright.patch     |   15 ------
 gdcm-2.0.17-install2libarch.patch  |   13 -----
 gdcm-2.0.17-no_versioned_dir.patch |   13 -----
 gdcm-2.4.0-find-python27.patch     |   13 +++++
 gdcm-2.4.0-inplace-build.patch     |   16 ++++++
 gdcm-2.4.0-install2libarch.patch   |   11 ++++
 gdcm-2.4.0-no-versioned-dir.patch  |   11 ++++
 gdcm-2.4.0-usecopyright.patch      |   15 ++++++
 gdcm.spec                          |   93 ++++++++++++++++++++++++++++++------
 sources                            |    3 +-
 13 files changed, 149 insertions(+), 75 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 39f6f43..f87d186 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
 /gdcm-2.2.4.tar.bz2
 /gdcmData.tar.bz2
 /gdcmData.tar.gz
+/gdcm-2.4.0.tar.bz2
diff --git a/gdcm-0005-support-vtk6.patch b/gdcm-0005-support-vtk6.patch
index 933395c..1722452 100644
--- a/gdcm-0005-support-vtk6.patch
+++ b/gdcm-0005-support-vtk6.patch
@@ -1,5 +1,5 @@
---- BUILD/gdcm-2.2.4/Utilities/VTK/CMakeLists.txt	2013-07-08 19:20:27.000000000 +0200
-+++ BUILD/gdcm-2.2.4.new/Utilities/VTK/CMakeLists.txt	2013-07-16 09:28:59.317107484 +0200
+--- gdcm-2.4.0.orig/Utilities/VTK/CMakeLists.txt	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/Utilities/VTK/CMakeLists.txt	2013-10-20 21:06:06.247345157 +0200
 @@ -2,6 +2,10 @@
  # We need VTK
  # Technically we require VTK 5.0 and above
@@ -9,5 +9,5 @@
 +
 +
  # Define the src for the vtk-gdcm bridge
- SET(vtkgdcm_SRCS
+ set(vtkgdcm_SRCS
    vtkGDCMTesting.cxx
diff --git a/gdcm-2.4.0-find-python27.patch b/gdcm-2.4.0-find-python27.patch
new file mode 100644
index 0000000..3348615
--- /dev/null
+++ b/gdcm-2.4.0-find-python27.patch
@@ -0,0 +1,13 @@
+--- gdcm-2.4.0.orig/Wrapping/Python/CMakeLists.txt	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/Wrapping/Python/CMakeLists.txt	2013-10-21 10:08:42.803226233 +0200
+@@ -44,8 +44,8 @@
+   ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ 
+-find_package(PythonInterp REQUIRED)
+-find_package(PythonLibs REQUIRED)
++find_package(PythonInterp 2.7 REQUIRED)
++find_package(PythonLibs 2.7 REQUIRED)
+ # TODO Need to check consistency python interp and python libs...
+ mark_as_advanced(PYTHON_LIBRARY PYTHON_INCLUDE_PATH)
+ # Lamest excuse ever:
diff --git a/gdcm-2.4.0-inplace-build.patch b/gdcm-2.4.0-inplace-build.patch
new file mode 100644
index 0000000..438325c
--- /dev/null
+++ b/gdcm-2.4.0-inplace-build.patch
@@ -0,0 +1,16 @@
+--- gdcm-2.4.0.orig/CMakeLists.txt	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/CMakeLists.txt	2013-10-20 20:49:44.857086416 +0200
+@@ -27,13 +27,6 @@
+ 
+ #-----------------------------------------------------------------------------
+ # Disallow insource build since I never test that
+-string(COMPARE EQUAL "${GDCM_SOURCE_DIR}" "${GDCM_BINARY_DIR}" INSOURCE)
+-get_filename_component(PARENTDIR ${GDCM_BINARY_DIR} PATH)
+-string(COMPARE EQUAL "${GDCM_SOURCE_DIR}" "${PARENTDIR}" INSOURCESUBDIR)
+-if(INSOURCE OR INSOURCESUBDIR)
+-  message(FATAL_ERROR "GDCM requires an out of source Build. "
+-    "Please create a separate binary directory and run CMake there.")
+-endif()
+ 
+ #----------------------------------------------------------------------------
+ set(GDCM_MAJOR_VERSION 2)
diff --git a/gdcm-2.4.0-install2libarch.patch b/gdcm-2.4.0-install2libarch.patch
new file mode 100644
index 0000000..ab81f0a
--- /dev/null
+++ b/gdcm-2.4.0-install2libarch.patch
@@ -0,0 +1,11 @@
+--- gdcm-2.4.0.orig/CMakeLists.txt	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/CMakeLists.txt	2013-10-20 21:16:59.552765990 +0200
+@@ -237,7 +230,7 @@
+ 
+ if(NOT GDCM_INSTALL_LIB_DIR)
+   #set(GDCM_INSTALL_LIB_DIR "lib/${PROJECT_NAME}")
+-  set(GDCM_INSTALL_LIB_DIR "lib")
++  set(GDCM_INSTALL_LIB_DIR "lib${LIB_SUFFIX}")
+ endif()
+ 
+ if(NOT GDCM_INSTALL_DATA_DIR)
diff --git a/gdcm-2.4.0-no-versioned-dir.patch b/gdcm-2.4.0-no-versioned-dir.patch
new file mode 100644
index 0000000..7c92cf6
--- /dev/null
+++ b/gdcm-2.4.0-no-versioned-dir.patch
@@ -0,0 +1,11 @@
+--- gdcm-2.4.0.orig/CMakeLists.txt	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/CMakeLists.txt	2013-10-20 21:01:35.475088018 +0200
+@@ -229,7 +229,7 @@
+ # Install directories
+ 
+ string(TOLOWER ${PROJECT_NAME} projectname)
+-set(subdir "${projectname}-${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}")
++set(subdir "${projectname}")
+ 
+ if(NOT GDCM_INSTALL_BIN_DIR)
+   set(GDCM_INSTALL_BIN_DIR "bin")
diff --git a/gdcm-2.4.0-usecopyright.patch b/gdcm-2.4.0-usecopyright.patch
new file mode 100644
index 0000000..6b22818
--- /dev/null
+++ b/gdcm-2.4.0-usecopyright.patch
@@ -0,0 +1,15 @@
+--- gdcm-2.4.0.orig/CMake/UseCopyright.cmake	2013-10-16 10:28:54.000000000 +0200
++++ gdcm-2.4.0/CMake/UseCopyright.cmake	2013-10-20 21:11:37.532101984 +0200
+@@ -18,8 +18,10 @@
+   # need to raise an error if COPYRIGHT_MODULE_FILENAME is not set...
+   if(EXISTS ${COPYRIGHT_MODULE_FILENAME} )
+     foreach(filename ${ARGN})
+-      file(READ ${filename} content)
+-      file(APPEND ${COPYRIGHT_MODULE_FILENAME} ${content})
++      if(EXISTS ${filename} )
++        file(READ ${filename} content)
++        file(APPEND ${COPYRIGHT_MODULE_FILENAME} ${content})
++      endif()
+     endforeach()
+   endif()
+ endmacro()
diff --git a/gdcm.spec b/gdcm.spec
index 579f4ea..cabbe71 100644
--- a/gdcm.spec
+++ b/gdcm.spec
@@ -5,8 +5,8 @@
 }
 
 Name:		gdcm
-Version:	2.2.4
-Release:	5%{?dist}
+Version:	2.4.0
+Release:	1%{?dist}
 Summary:	Grassroots DiCoM is a C++ library to parse DICOM medical files
 Group:		Development/Libraries
 License:	BSD
@@ -14,12 +14,13 @@ URL:		http://gdcm.sourceforge.net/wiki/index.php/Main_Page
 Source0:	http://sourceforge.net/projects/gdcm/files/gdcm%202.x/GDCM%20%{version}/%{name}-%{version}.tar.bz2
 Source1:	http://downloads.sourceforge.net/project/gdcm/gdcmData/gdcmData/gdcmData.tar.gz
 
-Patch1:	gdcm-2.0.14-inplacebuild.patch
-Patch2:	gdcm-2.0.14-usecopyright.patch
-Patch3:	gdcm-2.0.17-install2libarch.patch
-Patch4:	gdcm-2.0.17-no_versioned_dir.patch
+Patch1:	gdcm-2.4.0-inplace-build.patch
+Patch2:	gdcm-2.4.0-usecopyright.patch
+Patch3:	gdcm-2.4.0-install2libarch.patch
+Patch4:	gdcm-2.4.0-no-versioned-dir.patch
 # From http://public.kitware.com/pipermail/vtkusers/2013-February/127377.html
 Patch5: gdcm-0005-support-vtk6.patch
+Patch6: gdcm-2.4.0-find-python27.patch
 
 BuildRequires:	CharLS-devel >= 1.0
 BuildRequires:	cmake
@@ -39,6 +40,7 @@ BuildRequires:	openjpeg-devel
 #BuildRequires:	/usr/bin/pdflatex
 #BuildRequires:	poppler-devel
 BuildRequires:	python2-devel
+BuildRequires:	python3-devel
 BuildRequires:	postgresql-devel
 BuildRequires:	swig
 #BuildRequires:	texlive-ec
@@ -85,14 +87,24 @@ Requires:	%{name} = %{version}-%{release}
 You should install the gdcm-python package if you would like to
 used this library with python
 
+%package -n	python3-gdcm
+Summary:	Python binding for GDCM
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description -n python3-gdcm
+
+You should install the python3-gdcm package if you would like to
+used this library with python
+
 %prep
 %setup -q
 %setup -T -D -a 1
-%patch1
-%patch2
+%patch1 -p 1
+%patch2 -p 1
 %patch3 -p 1
 %patch4 -p 1
-%patch5 -p 2
+%patch5 -p 1
 
 # Remove bundled utilities (we use Fedora's ones)
 
@@ -111,12 +123,52 @@ rm -rf Utilities/wxWidgets
 # Needed for testing:
 #rm -rf Utilities/gdcmmd5 
 
+# prepare python3 build
+rm -rf %{py3dir}
+cp -a . %{py3dir}
+
+# apply patch after copying files for python3 build
+%patch6 -p 1
 
 %build
+# build python3 build
+pushd %{py3dir}
 
 mkdir -p %{_target_platform}
 pushd %{_target_platform}
 
+%cmake	.. \
+	-DCMAKE_VERBOSE_MAKEFILE=ON \
+	-DGDCM_BUILD_TESTING=ON \
+	-DGDCM_DATA_ROOT=../gdcmData/ \
+	-DGDCM_BUILD_EXAMPLES:BOOL=ON \
+	-DGDCM_DOCUMENTATION:BOOL=ON \
+	-DGDCM_PDF_DOCUMENTATION:BOOL=OFF \
+	-DGDCM_WRAP_PYTHON:BOOL=ON \
+	-DPYTHON_EXECUTABLE=%{__python3} \
+	-DGDCM_INSTALL_PYTHONMODULE_DIR=%{python3_sitearch} \
+	-DGDCM_WRAP_JAVA=OFF \
+	-DGDCM_BUILD_SHARED_LIBS:BOOL=ON \
+	-DGDCM_BUILD_APPLICATIONS:BOOL=ON \
+	-DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" \
+	-DGDCM_USE_VTK:BOOL=OFF \
+	-DGDCM_USE_SYSTEM_CHARLS=ON \
+	-DGDCM_USE_SYSTEM_EXPAT=ON \
+	-DGDCM_USE_SYSTEM_OPENJPEG=ON \
+	-DGDCM_USE_SYSTEM_ZLIB=ON \
+	-DGDCM_USE_SYSTEM_UUID=ON \
+	-DGDCM_USE_SYSTEM_LJPEG=OFF \
+	-DGDCM_USE_SYSTEM_OPENSSL=ON \
+	-DGDCM_USE_JPEGLS=ON \
+	-DGDCM_USE_SYSTEM_POPPLER=OFF
+popd
+
+make %{?_smp_mflags} -C %{_target_platform}
+popd
+# end python3
+
+mkdir -p %{_target_platform}
+pushd %{_target_platform}
 
 %cmake	.. \
 	-DCMAKE_VERBOSE_MAKEFILE=ON \
@@ -126,6 +178,8 @@ pushd %{_target_platform}
 	-DGDCM_DOCUMENTATION:BOOL=ON \
 	-DGDCM_PDF_DOCUMENTATION:BOOL=OFF \
 	-DGDCM_WRAP_PYTHON:BOOL=ON \
+	-DPYTHON_EXECUTABLE=%{__python2} \
+	-DGDCM_INSTALL_PYTHONMODULE_DIR=%{python2_sitearch} \
 	-DGDCM_WRAP_JAVA=OFF \
 	-DGDCM_BUILD_SHARED_LIBS:BOOL=ON \
 	-DGDCM_BUILD_APPLICATIONS:BOOL=ON \
@@ -150,13 +204,15 @@ popd
 make %{?_smp_mflags} -C %{_target_platform}
 
 %install
+rm -rf %{buildroot}
+
+# install python3 build
+pushd %{py3dir}
 make install DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform}
+install -d %{buildroot}%{python3_sitearch}
+popd
 
-install -d $RPM_BUILD_ROOT%{python_sitelib}/
-mv $RPM_BUILD_ROOT%{_libdir}/*.py $RPM_BUILD_ROOT%{python_sitelib}/
-#mv $RPM_BUILD_ROOT%{_libdir}/gdcmswig.py $RPM_BUILD_ROOT%{python_sitelib}/
-mv $RPM_BUILD_ROOT%{_libdir}/_gdcmswig.so $RPM_BUILD_ROOT%{python_sitelib}/
-#mv $RPM_BUILD_ROOT%{_libdir}/vtkgdcm.py $RPM_BUILD_ROOT%{python_sitelib}/
+make install DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform}
 
 ## Rearranging directory layout and removing version from dir
 mv $RPM_BUILD_ROOT%{_libdir}/gdcm/*.cmake $RPM_BUILD_ROOT%{_datadir}/gdcm/
@@ -196,9 +252,16 @@ make test -C %{_target_platform} || exit 0
 %{_datadir}/gdcm/*.cmake
 
 %files python
-%{python_sitelib}/*
+%{python2_sitearch}/*
+
+%files -n python3-gdcm
+%{python3_sitearch}/*
 
 %changelog
+* Sun Oct 20 2013 Sebastian Pölsterl <sebp at k-d-w.org> - 2.4.0-1
+- Update to 2.4.0
+- Added python3-gdcm package
+
 * Tue Aug 13 2013 Mario Ceresa <mrceresa AT fedoraproject DOT org> - 2.2.4-5
 - Still getting "vtkImageData has no member named 'GetWholeExtent" with vtk-devel
 - Added additional debug symbols
diff --git a/sources b/sources
index 4112982..6edd84a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-d53e708f973efbe2f1c500cc7198b27e  gdcm-2.2.4.tar.bz2
-9e73255514b7406f365b615319ed9699  gdcmData.tar.gz
+91163ba15eea1bf7c9033dc20a6d9403  gdcm-2.4.0.tar.bz2


More information about the scm-commits mailing list