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.0.14-inplacebuild.patch b/gdcm-2.0.14-inplacebuild.patch deleted file mode 100644 index 3a36994..0000000 --- a/gdcm-2.0.14-inplacebuild.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- CMakeLists.txt 2009-11-12 23:09:48.000000000 +0100 -+++ CMakeLists2.txt 2010-02-05 18:08:06.000000000 +0100 -@@ -38,10 +38,7 @@ - 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(INSOURCE OR INSOURCESUBDIR) -+ - - #----------------------------------------------------------------------------- - SET(GDCM_MAJOR_VERSION 2) diff --git a/gdcm-2.0.14-usecopyright.patch b/gdcm-2.0.14-usecopyright.patch deleted file mode 100644 index 2a3fdb8..0000000 --- a/gdcm-2.0.14-usecopyright.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- CMake/UseCopyright.cmake 2009-11-12 23:09:48.000000000 +0100 -+++ CMake/UseCopyright2.cmake 2010-02-17 13:24:09.000000000 +0100 -@@ -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(EXISTS ${filename} ) - ENDFOREACH(filename) - ENDIF(EXISTS ${COPYRIGHT_MODULE_FILENAME} ) - ENDMACRO(APPEND_COPYRIGHT) diff --git a/gdcm-2.0.17-install2libarch.patch b/gdcm-2.0.17-install2libarch.patch deleted file mode 100644 index d1680d6..0000000 --- a/gdcm-2.0.17-install2libarch.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c920c15..75bc60f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -207,7 +207,7 @@ ENDIF(NOT GDCM_INSTALL_BIN_DIR) - - 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(NOT GDCM_INSTALL_LIB_DIR) - - IF(NOT GDCM_INSTALL_DATA_DIR) diff --git a/gdcm-2.0.17-no_versioned_dir.patch b/gdcm-2.0.17-no_versioned_dir.patch deleted file mode 100644 index 8b825bb..0000000 --- a/gdcm-2.0.17-no_versioned_dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 29f5802..93a2a24 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -199,7 +199,7 @@ ENDIF(MSVC) - # 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-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,13 +123,20 @@ 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 \ @@ -126,6 +145,41 @@ pushd %{_target_platform} -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 \ + -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=%{__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 -make install DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform} +rm -rf %{buildroot} -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}/ +# install python3 build +pushd %{py3dir} +make install DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform} +install -d %{buildroot}%{python3_sitearch} +popd + +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 - 2.4.0-1 +- Update to 2.4.0 +- Added python3-gdcm package + * Tue Aug 13 2013 Mario Ceresa - 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