[med-svn] [Git][med-team/gdcm][experimental] 26 commits: d/p/gdcm-fix-xslt-maxdepth.patch set maxdeph Closes: #901519
Gert Wollny
gitlab at salsa.debian.org
Sat Jun 30 11:10:41 BST 2018
Gert Wollny pushed to branch experimental at Debian Med / gdcm
Commits:
7ca036f3 by Gert Wollny at 2018-06-19T23:55:47+02:00
d/p/gdcm-fix-xslt-maxdepth.patch set maxdeph Closes: #901519
- - - - -
b063db6c by Gert Wollny at 2018-06-19T23:58:36+02:00
d/control: remove useless python version field
- - - - -
b3092c31 by Gert Wollny at 2018-06-19T23:59:08+02:00
Update changelog for new upload
- - - - -
87ab2bb5 by Gert Wollny at 2018-06-20T00:12:04+02:00
Add CI script
- - - - -
16a8ca34 by Gert Wollny at 2018-06-30T10:44:22+02:00
d/control: Change back to default-jdk Closes: #894371
- - - - -
835ddd2c by Gert Wollny at 2018-06-30T11:09:13+02:00
start preparing
- - - - -
8537b443 by Gert Wollny at 2018-06-30T11:10:18+02:00
New upstream version 2.8.7
- - - - -
301f6bb9 by Gert Wollny at 2018-06-30T11:10:25+02:00
Update upstream source from tag 'upstream/2.8.7'
Update to upstream version '2.8.7'
with Debian dir 52622f084f119d9c235a75400c2d5cab683cab0e
- - - - -
d785d9bb by Gert Wollny at 2018-06-30T11:11:41+02:00
Update upstream version
- - - - -
ab558251 by Gert Wollny at 2018-06-30T11:41:05+02:00
d/p/fix-vtkjava-build-dir Closes: #894371
- - - - -
2e64b30f by Gert Wollny at 2018-06-30T11:41:44+02:00
Update changelog
- - - - -
14b3d7cf by Gert Wollny at 2018-06-30T11:55:04+02:00
d/gdcm-doc.doc-base Update doc base
- - - - -
d005b1da by Gert Wollny at 2018-06-30T11:55:24+02:00
Update changelog
- - - - -
61678534 by Gert Wollny at 2018-06-30T11:56:00+02:00
Move to vtk7 and python3
- - - - -
d271e555 by Gert Wollny at 2018-06-30T11:56:00+02:00
Update changelog for upload
- - - - -
f79430b5 by Gert Wollny at 2018-06-30T11:56:00+02:00
d/python-vtkgdcm Correct install files
- - - - -
d247ec03 by Gert Wollny at 2018-06-30T11:56:00+02:00
Update changelog for upload to experimental
- - - - -
44fc8445 by Gert Wollny at 2018-06-30T11:56:00+02:00
d/control: Set minimul version for python3-vtk7
- - - - -
8d888aac by Gert Wollny at 2018-06-30T11:57:09+02:00
d/changelog: upload to experimental with pyhon3 support
- - - - -
934fa2c3 by Gert Wollny at 2018-06-30T11:59:58+02:00
change upload version number
- - - - -
eb841da4 by Gert Wollny at 2018-06-30T11:59:58+02:00
d/p/gdcm-fix-xslt-maxdepth.patch set maxdeph Closes: #901519
- - - - -
7a0e7f41 by Gert Wollny at 2018-06-30T12:01:21+02:00
Update changelog
- - - - -
f856e96a by Gert Wollny at 2018-06-30T12:03:54+02:00
Update changelog for upload to experimental
- - - - -
7f3724f6 by Gert Wollny at 2018-06-30T12:05:03+02:00
Fix experimental version number
- - - - -
4a3b04b4 by Gert Wollny at 2018-06-30T12:05:54+02:00
d/p/series: Fix merge error
- - - - -
b2a6b562 by Gert Wollny at 2018-06-30T12:09:06+02:00
Make CI use experimental
- - - - -
28 changed files:
- Applications/Cxx/gdcmdump.cxx
- Applications/Cxx/gdcmscu.cxx
- CMakeLists.txt
- Source/DataDictionary/gdcmPrivateDefaultDicts.cxx
- Source/MediaStorageAndFileFormat/gdcmIPPSorter.cxx
- Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx
- Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
- Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.cxx
- Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.h
- Utilities/VTK/vtkGDCMPolyDataWriter.cxx
- Utilities/doxygen/CMakeLists.txt
- appveyor.yml
- + debian/.gitlab-ci.yml
- debian/changelog
- debian/control
- debian/control.in
- debian/gdcm-doc.doc-base
- debian/patches/03_linkvtkdoc.patch
- + debian/patches/add_cxx11_vtk_defines.patch
- + debian/patches/fix-vtkjava-build-dir.patch
- + debian/patches/gdcm-fix-xslt-maxdepth.patch
- debian/patches/series
- − debian/python-gdcm.install
- − debian/python-vtkgdcm.install
- + debian/python3-gdcm.install
- + debian/python3-vtkgdcm.install
- debian/python-vtkgdcm.lintian-overrides → debian/python3-vtkgdcm.lintian-overrides
- debian/rules
Changes:
=====================================
Applications/Cxx/gdcmdump.cxx
=====================================
--- a/Applications/Cxx/gdcmdump.cxx
+++ b/Applications/Cxx/gdcmdump.cxx
@@ -816,7 +816,7 @@ static int PrintPDB(const std::string & filename, bool verbose)
}
if( !found )
{
- std::cout << "no pdb tag found" << std::endl;
+ std::cerr << "no pdb tag found" << std::endl;
ret = 1;
}
@@ -901,7 +901,7 @@ static int PrintCSA(const std::string & filename)
found = true;
if( csa.GetFormat() == gdcm::CSAHeader::ZEROED_OUT )
{
- std::cout << "CSA Header has been zero-out (contains only 0)" << std::endl;
+ std::cerr << "CSA Header has been zero-out (contains only 0)" << std::endl;
ret = 1;
}
else if( csa.GetFormat() == gdcm::CSAHeader::DATASET_FORMAT )
@@ -920,7 +920,7 @@ static int PrintCSA(const std::string & filename)
found = true;
if( csa.GetFormat() == gdcm::CSAHeader::ZEROED_OUT )
{
- std::cout << "CSA Header has been zero-out (contains only 0)" << std::endl;
+ std::cerr << "CSA Header has been zero-out (contains only 0)" << std::endl;
ret = 1;
}
else if( csa.GetFormat() == gdcm::CSAHeader::DATASET_FORMAT )
@@ -939,7 +939,7 @@ static int PrintCSA(const std::string & filename)
found = true;
if( csa.GetFormat() == gdcm::CSAHeader::ZEROED_OUT )
{
- std::cout << "CSA Header has been zero-out (contains only 0)" << std::endl;
+ std::cerr << "CSA Header has been zero-out (contains only 0)" << std::endl;
ret = 1;
}
else if( csa.GetFormat() == gdcm::CSAHeader::INTERFILE )
@@ -958,7 +958,7 @@ static int PrintCSA(const std::string & filename)
}
if( !found )
{
- std::cout << "no csa tag found" << std::endl;
+ std::cerr << "no csa tag found" << std::endl;
ret = 1;
}
=====================================
Applications/Cxx/gdcmscu.cxx
=====================================
--- a/Applications/Cxx/gdcmscu.cxx
+++ b/Applications/Cxx/gdcmscu.cxx
@@ -283,6 +283,7 @@ int main(int argc, char *argv[])
std::string str;
//ss >> str;
std::getline(ss, str); // do not skip whitespace
+ if( str.size() % 2 == 1 ) str += " ";
keys.push_back( std::make_pair(tag, str) );
}
else if( option_index == 20 ) /* port-scp */
=====================================
CMakeLists.txt
=====================================
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,7 @@ set(GDCM_PACKAGE_CONTACT "GDCM Developers <gdcm-developers at lists.sourceforge.net
#----------------------------------------------------------------------------
set(GDCM_MAJOR_VERSION 2)
set(GDCM_MINOR_VERSION 8)
-set(GDCM_BUILD_VERSION 6)
+set(GDCM_BUILD_VERSION 7)
set(GDCM_VERSION
"${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
# let advanced user the option to define GDCM_API_VERSION:
=====================================
Source/DataDictionary/gdcmPrivateDefaultDicts.cxx
=====================================
--- a/Source/DataDictionary/gdcmPrivateDefaultDicts.cxx
+++ b/Source/DataDictionary/gdcmPrivateDefaultDicts.cxx
@@ -1723,6 +1723,7 @@ static const DICT_ENTRY DICOMV3DataDict [] = {
{0x07a1,0x002b,"ELSCINT1",VR::CS,VM::VM1,"?",false },
{0x07a1,0x0036,"ELSCINT1",VR::AE,VM::VM1,"Tamar Source Ae",false },
{0x07a1,0x0040,"ELSCINT1",VR::CS,VM::VM1,"Tamar Study Body Part",false },
+ {0x07a1,0x0042,"ELSCINT1",VR::SH,VM::VM1,"?",false },
{0x07a1,0x0043,"ELSCINT1",VR::IS,VM::VM1,"?",false },
{0x07a1,0x0047,"ELSCINT1",VR::CS,VM::VM1,"?orientation?",false },
{0x07a1,0x0050,"ELSCINT1",VR::US,VM::VM1,"Tamar Site Id",false },
@@ -1737,6 +1738,7 @@ static const DICT_ENTRY DICOMV3DataDict [] = {
{0x07a1,0x0088,"ELSCINT1",VR::US,VM::VM1,"?",false },
{0x07a1,0x0098,"ELSCINT1",VR::US,VM::VM1,"?",false },
{0x07a1,0x009f,"ELSCINT1",VR::CS,VM::VM1,"?",false },
+ {0x07a1,0x00d0,"ELSCINT1",VR::LO,VM::VM1,"?",false },
{0x07a3,0x0001,"ELSCINT1",VR::LO,VM::VM1,"Tamar Exe Software Version",false },
{0x07a3,0x0003,"ELSCINT1",VR::CS,VM::VM1,"Tamar Study Has Sticky Note",false },
{0x07a3,0x0005,"ELSCINT1",VR::CS,VM::VM1,"?",false },
@@ -1750,16 +1752,22 @@ static const DICT_ENTRY DICOMV3DataDict [] = {
{0x07a3,0x001c,"ELSCINT1",VR::ST,VM::VM1,"?patient name?",false },
{0x07a3,0x001d,"ELSCINT1",VR::ST,VM::VM1,"?radiologist name?",false },
{0x07a3,0x001e,"ELSCINT1",VR::ST,VM::VM1,"?num?",false },
+ {0x07a3,0x001f,"ELSCINT1",VR::ST,VM::VM1,"?",false },
+ {0x07a3,0x0022,"ELSCINT1",VR::ST,VM::VM1,"?",false },
{0x07a3,0x0023,"ELSCINT1",VR::ST,VM::VM1,"?+sign?",false },
+ {0x07a3,0x0024,"ELSCINT1",VR::ST,VM::VM1,"?",false },
{0x07a3,0x0034,"ELSCINT1",VR::SH,VM::VM1,"Tamar Study Age",false },
{0x07a3,0x0043,"ELSCINT1",VR::DS,VM::VM1_n,"?",false },
+ {0x07a3,0x0052,"ELSCINT1",VR::LO,VM::VM1,"?",false },
{0x07a3,0x0055,"ELSCINT1",VR::SH,VM::VM1,"?",false },
+ {0x07a3,0x005c,"ELSCINT1",VR::ST,VM::VM1,"?",false },
{0x07a3,0x0061,"ELSCINT1",VR::LT,VM::VM1,"?",false },
{0x07a3,0x0062,"ELSCINT1",VR::SQ,VM::VM1,"?",false },
{0x07a3,0x0063,"ELSCINT1",VR::SQ,VM::VM1,"?",false },
{0x07a3,0x0064,"ELSCINT1",VR::IS,VM::VM1_n,"?",false },
{0x07a3,0x0065,"ELSCINT1",VR::CS,VM::VM1_n,"?yes/no bool?",false },
{0x07a3,0x0066,"ELSCINT1",VR::IS,VM::VM1,"?",false },
+ {0x07a3,0x008f,"ELSCINT1",VR::CS,VM::VM1,"?",false },
{0x07a3,0x0099,"ELSCINT1",VR::CS,VM::VM1,"?yes/no bool?",false },
{0x07a3,0x009c,"ELSCINT1",VR::CS,VM::VM1,"?yes/no bool?",false },
{0x07a3,0x009f,"ELSCINT1",VR::CS,VM::VM1,"?",false },
@@ -1779,8 +1787,11 @@ static const DICT_ENTRY DICOMV3DataDict [] = {
{0x07a3,0x00cb,"ELSCINT1",VR::SQ,VM::VM1,"?network seq11?",false },
{0x07a3,0x00cc,"ELSCINT1",VR::LO,VM::VM1,"Tamar Grid Token Version",false },
{0x07a5,0x0000,"ELSCINT1",VR::LO,VM::VM1,"?",false },
+ {0x07a5,0x0054,"ELSCINT1",VR::DT,VM::VM1,"?",false },
{0x07a5,0x0056,"ELSCINT1",VR::CS,VM::VM1,"?",false },
+ {0x07a5,0x0063,"ELSCINT1",VR::CS,VM::VM1_n,"?",false },
{0x07a5,0x0069,"ELSCINT1",VR::LO,VM::VM1,"?",false },
+ {0x07a5,0x00c8,"ELSCINT1",VR::CS,VM::VM1,"?",false },
{0x5001,0x0070,"ELSCINT1",VR::SQ,VM::VM1,"?",false },
{0x5001,0x0071,"ELSCINT1",VR::SH,VM::VM1,"?",false },
{0x5001,0x0080,"ELSCINT1",VR::SQ,VM::VM1,"?",false },
@@ -6045,7 +6056,9 @@ static const DICT_ENTRY DICOMV3DataDict [] = {
{0x200b,0x0099,"Philips RAD Imaging DD 097",VR::SH,VM::VM1,"?",false },
{0x200b,0x009a,"Philips RAD Imaging DD 097",VR::FD,VM::VM1,"?",false },
{0x200b,0x009b,"Philips RAD Imaging DD 097",VR::FD,VM::VM1,"?",false },
+ {0x200b,0x009f,"Philips RAD Imaging DD 097",VR::SQ,VM::VM1,"?",false },
{0x200b,0x00a0,"Philips RAD Imaging DD 097",VR::LT,VM::VM1,"?",false },
+ {0x200b,0x00a1,"Philips RAD Imaging DD 097",VR::CS,VM::VM1,"?bool?",false },
{0x0031,0x0030,"Philips US Imaging 60",VR::UL,VM::VM1,"Private data",false },
{0x0031,0x0031,"Philips US Imaging 60",VR::UL,VM::VM1,"Private data",false },
{0x200d,0x0005,"Philips US Imaging DD 017",VR::LO,VM::VM1,"?",false },
=====================================
Source/MediaStorageAndFileFormat/gdcmIPPSorter.cxx
=====================================
--- a/Source/MediaStorageAndFileFormat/gdcmIPPSorter.cxx
+++ b/Source/MediaStorageAndFileFormat/gdcmIPPSorter.cxx
@@ -37,6 +37,25 @@ inline double spacing_round(double n, int d) /* pow is defined as pow( double, d
return floor(n * pow(10., d) + .5) / pow(10., d);
}
+struct dircos_key {
+ double dircos[6];
+ void read( const std::string & str ) {
+ DirectionCosines dc;
+ dc.SetFromString( str.c_str() );
+ const double * ptr = dc;
+ memcpy( dircos, ptr, sizeof(dircos) );
+ }
+};
+
+struct dircos_comp {
+ bool operator()( dircos_key const & lhs, dircos_key const & rhs ) {
+ const double *iop1 = lhs.dircos;
+ const double *iop2 = rhs.dircos;
+ return std::lexicographical_compare(iop1, iop1+6,
+ iop2, iop2+6);
+ }
+};
+
bool IPPSorter::Sort(std::vector<std::string> const & filenames)
{
// BUG: I cannot clear Filenames since input filenames could also be the output of ourself...
@@ -88,9 +107,20 @@ bool IPPSorter::Sort(std::vector<std::string> const & filenames)
{
if( iops.size() != 1 )
{
- gdcmDebugMacro( "More than one IOP (or no IOP): " << iops.size() );
- //std::copy(iops.begin(), iops.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
- return false;
+ std::set< dircos_key, dircos_comp > s;
+ for( Scanner::ValuesType::const_iterator it = iops.begin(); it != iops.end(); ++it )
+ {
+ dircos_key dk;
+ dk.read( *it );
+ s.insert( dk );
+ }
+ // sometime we want to handle:
+ // iops = {[0] = "1\\0\\0\\0\\1\\-0", [1] = "1\\0\\0\\0\\1\\0 "}
+ if( s.size() != 1 )
+ {
+ gdcmDebugMacro( "More than one IOP (or no IOP): " << iops.size() << ". Try changing DirCosTolerance" );
+ return false;
+ }
}
}
const size_t fsize = frames.size(); // Should I really tolerate issue with Frame of Reference UID ?
=====================================
Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx
=====================================
--- a/Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx
+++ b/Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx
@@ -773,12 +773,12 @@ std::vector<unsigned int> ImageHelper::GetDimensionsValue(const File& f)
#endif
{
{
- Attribute<0x0028,0x0011> at = { 0 };
+ Attribute<0x0028,0x0011> at = { 0 }; // Columns
at.SetFromDataSet( ds );
theReturn[0] = at.GetValue();
}
{
- Attribute<0x0028,0x0010> at = { 0 };
+ Attribute<0x0028,0x0010> at = { 0 }; // Rows
at.SetFromDataSet( ds );
theReturn[1] = at.GetValue();
}
=====================================
Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
=====================================
--- a/Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
+++ b/Source/MediaStorageAndFileFormat/gdcmJPEG2000Codec.cxx
@@ -1032,7 +1032,7 @@ opj_image_t* rawtoimage(const char *inputbuffer, opj_cparameters_t *parameters,
}
assert( bitsallocated % 8 == 0 );
// eg. fragment_size == 63532 and 181 * 117 * 3 * 8 == 63531 ...
- assert( ((fragment_size + 1)/2 ) * 2 == ((image_height * image_width * numcomps * (bitsallocated/8) + 1)/ 2 )* 2 );
+ assert( ((fragment_size + 1)/2 ) * 2 == (((size_t)image_height * image_width * numcomps * (bitsallocated/8) + 1)/ 2 )* 2 );
int subsampling_dx = parameters->subsampling_dx;
int subsampling_dy = parameters->subsampling_dy;
=====================================
Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.cxx
=====================================
--- a/Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.cxx
+++ b/Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.cxx
@@ -16,7 +16,6 @@
#include "gdcmAttribute.h"
#include "gdcmImageHelper.h"
#include "gdcmDirectionCosines.h"
-#include "gdcmAnonymizer.h"
#include <math.h>
@@ -48,7 +47,6 @@ static bool reorganize_mosaic(const unsigned short *input, const unsigned int *i
return true;
}
-#ifdef SNVINVERT
static bool reorganize_mosaic_invert(const unsigned short *input, const unsigned int *inputdims,
unsigned int square, const unsigned int *outputdims, unsigned short *output )
{
@@ -67,7 +65,6 @@ static bool reorganize_mosaic_invert(const unsigned short *input, const unsigned
}
return true;
}
-#endif
}
@@ -76,13 +73,60 @@ void SplitMosaicFilter::SetImage(const Image& image)
I = image;
}
-bool SplitMosaicFilter::ComputeMOSAICDimensions( unsigned int dims[3] )
+bool SplitMosaicFilter::GetAcquisitionSize(unsigned int size[2], DataSet const & ds)
+{
+ bool found = true;
+ /*
+ Dimensions of the acquired frequency /phase data before reconstruction.
+ Multi-valued: frequency rows\frequency columns\phase rows\phase columns.
+ */
+ Attribute<0x0018, 0x1310> acquisitionMatrix;
+ acquisitionMatrix.SetFromDataSet( ds );
+ const unsigned short *pMat = acquisitionMatrix.GetValues();
+ /*
+ The axis of phase encoding with respect to the image.
+
+ Enumerated Values:
+
+ ROW
+ phase encoded in rows.
+
+ COL
+ phase encoded in columns.
+ */
+ Attribute<0x0018, 0x1312> inPlanePhaseEncodingDirection;
+ inPlanePhaseEncodingDirection.SetFromDataSet( ds );
+ CSComp val = inPlanePhaseEncodingDirection.GetValue();
+ std::string dir = val.Trim();
+ // http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.8.3.html
+ if( dir == "COL" )
+ {
+ /* pay attention that size is: { columns , rows } */
+ // [256\0\0\134]
+ size[0] = pMat[3];
+ size[1] = pMat[0];
+ }
+ else if( dir == "ROW" )
+ {
+ // [0\512\213\0]
+ size[0] = pMat[1];
+ size[1] = pMat[2];
+ }
+ else
+ {
+ size[0] = size[1] = 0;
+ }
+ found = size[0] && size[1];
+ return found;
+}
+
+unsigned int SplitMosaicFilter::GetNumberOfImagesInMosaic( File const & file )
{
+ unsigned int numberOfImagesInMosaic = 0;
+ DataSet const &ds = file.GetDataSet();
CSAHeader csa;
- DataSet& ds = GetFile().GetDataSet();
const PrivateTag &t1 = csa.GetCSAImageHeaderInfoTag();
- int numberOfImagesInMosaic = 0;
if( csa.LoadFromDataElement( ds.GetDataElement( t1 ) ) )
{
if( csa.FindCSAElementByName( "NumberOfImagesInMosaic" ) )
@@ -96,7 +140,8 @@ bool SplitMosaicFilter::ComputeMOSAICDimensions( unsigned int dims[3] )
}
}
}
- else
+ // try harder:
+ if( !numberOfImagesInMosaic )
{
// Some weird anonymizer remove the private creator but leave the actual element.
// oh well, let try harder:
@@ -116,14 +161,62 @@ bool SplitMosaicFilter::ComputeMOSAICDimensions( unsigned int dims[3] )
}
}
}
+
+ std::vector<unsigned int> colrow =
+ ImageHelper::GetDimensionsValue( file );
+
+ // try super harder. Pay attention that trailing black image cannot be removed here.
+ if( !numberOfImagesInMosaic )
+ {
+ unsigned int mosaicSize[2];
+ if( GetAcquisitionSize(mosaicSize, ds) )
+ {
+ if( colrow[0] % mosaicSize[0] == 0 &&
+ colrow[1] % mosaicSize[1] == 0 )
+ {
+ numberOfImagesInMosaic =
+ colrow[0] / mosaicSize[0] *
+ colrow[1] / mosaicSize[1];
+ // MultiFrame will contain trailing empty slices:
+ gdcmWarningMacro( "NumberOfImagesInMosaic was not found. Volume will be padded with black image." );
+ }
+ else
+ {
+ // assume interpolation:
+ unsigned int mosSize = std::max( mosaicSize[0], mosaicSize[1] );
+ if( colrow[0] % mosSize == 0 &&
+ colrow[1] % mosSize == 0 )
+ {
+ gdcmDebugMacro( "Matrix Acquisition does not match exactly. Using max value." );
+ numberOfImagesInMosaic =
+ colrow[0] / mosSize *
+ colrow[1] / mosSize;
+ // MultiFrame will contain trailing empty slices:
+ gdcmWarningMacro( "NumberOfImagesInMosaic was not found. Volume will be padded with black image." );
+ }
+ else
+ {
+ gdcmErrorMacro( "NumberOfImagesInMosaic cannot be computed from Img Acq: " << mosaicSize[0] << "," << mosaicSize[1] );
+ }
+ }
+ }
+ }
+ return numberOfImagesInMosaic;
+}
+
+bool SplitMosaicFilter::ComputeMOSAICDimensions( unsigned int dims[3] )
+{
+ unsigned int numberOfImagesInMosaic = GetNumberOfImagesInMosaic( GetFile() );
+
if( !numberOfImagesInMosaic )
{
- gdcmErrorMacro( "Could not find NumberOfImagesInMosaic" );
+ gdcmErrorMacro( "Could not find/compute NumberOfImagesInMosaic" );
return false;
}
std::vector<unsigned int> colrow =
ImageHelper::GetDimensionsValue( GetFile() );
+
dims[0] = colrow[0];
dims[1] = colrow[1];
@@ -171,12 +264,12 @@ bool SplitMosaicFilter::ComputeMOSAICSliceNormal( double slicenormalvector[3], b
double z[3];
dc.Cross (z);
const double snv_dot = dc.Dot( normal, z );
- if( (1. - snv_dot) < 1e-6 )
+ if( fabs(1. - snv_dot) < 1e-6 )
{
gdcmDebugMacro("Same direction");
inverted = false;
}
- else if( (-1. - snv_dot) < 1e-6 )
+ else if( fabs(-1. - snv_dot) < 1e-6 )
{
gdcmWarningMacro("SliceNormalVector is opposite direction");
inverted = true;
@@ -251,14 +344,19 @@ bool SplitMosaicFilter::Split()
const unsigned int div = (unsigned int )ceil(sqrt( (double)dims[2]) );
bool inverted;
double normal[3];
+ bool hasOriginCSA = true;
+ bool hasNormalCSA = true;
if( !ComputeMOSAICSliceNormal( normal, inverted ) )
{
- return false;
+ gdcmDebugMacro( "Normal will not be accurate" );
+ hasNormalCSA = false;
}
+ (void)hasNormalCSA;
double origin[3];
if( !ComputeMOSAICSlicePosition( origin, inverted ) )
{
- return false;
+ gdcmWarningMacro( "Origin will not be accurate" );
+ hasOriginCSA = false;
}
const Image &inputimage = GetImage();
@@ -277,7 +375,6 @@ bool SplitMosaicFilter::Split()
outbuf.resize(l);
bool b;
-#ifdef SNVINVERT
if( inverted )
{
b = details::reorganize_mosaic_invert(
@@ -285,7 +382,6 @@ bool SplitMosaicFilter::Split()
(unsigned short*)&outbuf[0] );
}
else
-#endif
{
b = details::reorganize_mosaic(
(unsigned short*)&buf[0], inputimage.GetDimensions(), div, dims,
@@ -312,6 +408,7 @@ bool SplitMosaicFilter::Split()
image.SetDimension(2, dims[2] );
// Fix origin (direction is ok since we reorganize the tiles):
+ if( hasOriginCSA )
image.SetOrigin( origin );
PhotometricInterpretation pi;
=====================================
Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.h
=====================================
--- a/Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.h
+++ b/Source/MediaStorageAndFileFormat/gdcmSplitMosaicFilter.h
@@ -33,6 +33,12 @@ namespace gdcm
* Siemens CSA Image Header
* CSA:= Common Siemens Architecture, sometimes also known as Common syngo Architecture
*
+ * \warning when private attributes are not found, the acquisition matrix is
+ * used to compute the NumberOfImagesInMosaic. This means trailing black slices
+ * will be considered in the volume (instead of discarded).
+ * CSA 0029,1010 is needed for correct NumberOfImagesInMosaic
+ * CSA 0029,1020 is needed to compute the correct origin
+ * without above info default are taken (may not be accurate).
*/
class GDCM_EXPORT SplitMosaicFilter
{
@@ -61,6 +67,12 @@ public:
File &GetFile() { return *F; }
const File &GetFile() const { return *F; }
+ /// Get the Acquisition Matrix (non zero value):
+ static bool GetAcquisitionSize(unsigned int size[2], DataSet const & ds);
+
+ /// Return the value for NumberOfImagesInMosaic, or compute it from Acquisition Size
+ static unsigned int GetNumberOfImagesInMosaic( File const & file );
+
protected:
private:
=====================================
Utilities/VTK/vtkGDCMPolyDataWriter.cxx
=====================================
--- a/Utilities/VTK/vtkGDCMPolyDataWriter.cxx
+++ b/Utilities/VTK/vtkGDCMPolyDataWriter.cxx
@@ -586,7 +586,11 @@ void vtkGDCMPolyDataWriter::WriteRTSTRUCTData(gdcm::File &file, int pdidx )
if( darray )
{
double tuple[3];
+#if VTK_MAJOR_VERSION > 7 || (VTK_MAJOR_VERSION == 7 && VTK_MINOR_VERSION >= 1)
+ darray->GetTypedTuple( 0, tuple );
+#else
darray->GetTupleValue( 0, tuple );
+#endif
intcolor[0] = (int32_t)(tuple[0] * 255.);
intcolor[1] = (int32_t)(tuple[1] * 255.);
intcolor[2] = (int32_t)(tuple[2] * 255.);
@@ -594,7 +598,11 @@ void vtkGDCMPolyDataWriter::WriteRTSTRUCTData(gdcm::File &file, int pdidx )
else if( farray )
{
float ftuple[3];
+#if VTK_MAJOR_VERSION > 7 || (VTK_MAJOR_VERSION == 7 && VTK_MINOR_VERSION >= 1)
+ farray->GetTypedTuple( 0, ftuple );
+#else
farray->GetTupleValue( 0, ftuple );
+#endif
intcolor[0] = (int32_t)(ftuple[0] * 255.);
intcolor[1] = (int32_t)(ftuple[1] * 255.);
intcolor[2] = (int32_t)(ftuple[2] * 255.);
=====================================
Utilities/doxygen/CMakeLists.txt
=====================================
--- a/Utilities/doxygen/CMakeLists.txt
+++ b/Utilities/doxygen/CMakeLists.txt
@@ -304,30 +304,30 @@ else()
# -> http://stackoverflow.com/a/16605034/136285 ??
endif()
endif()
-if(XSLT_PROCESSOR)
- configure_file(version.txt.in
- version.txt @ONLY)
-foreach(docbook ${MANPAGES_XML})
- add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.1
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/man/${docbook}.xml ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.xml
- COMMAND ${XSLT_PROCESSOR} ${XSLT_PROCESSOR_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.xml
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${docbook}.xml
- )
- list(APPEND MANPAGES
- ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.1
+ if(XSLT_PROCESSOR)
+ configure_file(version.txt.in
+ version.txt @ONLY)
+ foreach(docbook ${MANPAGES_XML})
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.1
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/man/${docbook}.xml ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.xml
+ COMMAND ${XSLT_PROCESSOR} ${XSLT_PROCESSOR_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${docbook}.xml
+ )
+ list(APPEND MANPAGES
+ ${CMAKE_CURRENT_BINARY_DIR}/${docbook}.1
+ )
+ endforeach()
+ add_custom_target(DOCBOOK_MANPAGES
+ ALL
+ DEPENDS ${MANPAGES}
+ COMMENT "docbook manpages"
)
-endforeach()
-add_custom_target(DOCBOOK_MANPAGES
- ALL
- DEPENDS ${MANPAGES}
- COMMENT "docbook manpages"
+ install(FILES
+ ${MANPAGES}
+ DESTINATION ${GDCM_INSTALL_MAN_DIR}/man1 COMPONENT DebugDevel
)
-install(FILES
- ${MANPAGES}
- DESTINATION ${GDCM_INSTALL_MAN_DIR}/man1 COMPONENT DebugDevel
-)
-else()
- message(WARNING "Cannot build man page from docbook (need an XSL processor)")
-endif()
+ else()
+ message(WARNING "Cannot build man page from docbook (need an XSL processor)")
+ endif()
endif() # GDCM_BUILD_DOCBOOK_MANPAGES
=====================================
appveyor.yml
=====================================
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -97,6 +97,7 @@ install:
- cmd: SET PATH=%PATH%;C:\Program Files (x86)\NSIS
on_failure:
+ - ctest -D ExperimentalSubmit -C %CONFIG% -Q
# Display error log file if generated
- dir C:\projects\gdcm\bin
- dir C:\projects\gdcm\bin\Release
@@ -104,7 +105,7 @@ on_failure:
# scripts to run before build
before_build:
- - cmake -Wno-dev -G"%VS_GEN%" -DCMAKE_BUILD_TYPE=%CONFIG% -DGDCM_BUILD_TESTING:BOOL=ON -DGDCM_BUILD_APPLICATIONS:BOOL=ON -DGDCM_BUILD_EXAMPLES:BOOL=ON -DGDCM_BUILD_SHARED_LIBS:BOOL=ON -DBUILDNAME:STRING=%COMPUTERNAME%-%APPVEYOR_REPO_BRANCH%-%B_NAME% -DGDCM_WRAP_CSHARP:BOOL=ON -DGDCM_WRAP_JAVA:BOOL=ON -DGDCM_WRAP_PYTHON:BOOL=ON -DGDCM_USE_PVRG:BOOL=ON -DGDCM_LEGACY_SILENT:BOOL=ON -DCPACK_SYSTEM_NAME:STRING=%B_NAME% .
+ - cmake -Wno-dev -G"%VS_GEN%" -DCMAKE_BUILD_TYPE=%CONFIG% -DGDCM_BUILD_DOCBOOK_MANPAGES:BOOL=OFF -DGDCM_BUILD_TESTING:BOOL=ON -DGDCM_BUILD_APPLICATIONS:BOOL=ON -DGDCM_BUILD_EXAMPLES:BOOL=ON -DGDCM_BUILD_SHARED_LIBS:BOOL=ON -DBUILDNAME:STRING=%COMPUTERNAME%-%APPVEYOR_REPO_BRANCH%-%B_NAME% -DGDCM_WRAP_CSHARP:BOOL=ON -DGDCM_WRAP_JAVA:BOOL=ON -DGDCM_WRAP_PYTHON:BOOL=ON -DGDCM_USE_PVRG:BOOL=ON -DGDCM_LEGACY_SILENT:BOOL=ON -DCPACK_SYSTEM_NAME:STRING=%B_NAME% .
- ctest -D ExperimentalStart -C %CONFIG%
# scripts to run after build
=====================================
debian/.gitlab-ci.yml
=====================================
--- /dev/null
+++ b/debian/.gitlab-ci.yml
@@ -0,0 +1,16 @@
+image: debian:sid
+
+build:
+ stage: build
+ before_script:
+ - apt-get update && apt-get -y install devscripts git-buildpackage
+ - mk-build-deps --tool "apt -y -o Debug::pkgProblemResolver=yes --no-install-recommends" --install -r debian/control
+ script:
+ - git checkout pristine-tar
+ - git pull
+ - git checkout experimental
+ - git pull
+ # silence build to not exceed build log size of gitlab-ci
+ - gbp buildpackage -uc -us 2>&1 >../build.log
+ - tail -n 100 ../build.log
+
=====================================
debian/changelog
=====================================
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+gdcm (2.8.7-2python3exp1) experimental; urgency=medium
+
+ * Experimental upload with python3 support
+
+ -- Gert Wollny <gewo at debian.org> Sat, 30 Jun 2018 12:02:59 +0200
+
+gdcm (2.8.7-1) unstable; urgency=medium
+
+ * d/control: Change back to default-jdk
+ * New upstream version 2.8.7
+ * d/p/fix-vtkjava-build-dir Closes: #894371
+
+ -- Gert Wollny <gewo at debian.org> Sat, 30 Jun 2018 11:41:20 +0200
+
+gdcm (2.8.6-2) unstable; urgency=medium
+
+ * d/p/gdcm-fix-xslt-maxdepth.patch set maxdeph Closes: #901519
+ * d/control: remove useless python version field
+
+ -- Gert Wollny <gewo at debian.org> Tue, 19 Jun 2018 23:58:51 +0200
+
gdcm (2.8.6-2) unstable; urgency=medium
* d/rules: Add explicit java home path on arm* and
@@ -18,6 +39,20 @@ gdcm (2.8.6-1) unstable; urgency=medium
-- Gert Wollny <gewo at debian.org> Sun, 29 Apr 2018 10:30:49 +0200
+gdcm (2.8.5-1~exp1) experimental; urgency=medium
+
+ * Move to vtk7 and python3
+ * New upstream version 2.8.5
+ * d/gdcm-doc.doc-base: Update version umber in pdf file
+
+ -- Gert Wollny <gewo at debian.org> Tue, 10 Apr 2018 09:04:33 +0200
+
+gdcm (2.8.4-2) unstable; urgency=medium
+
+ * d/rules: update default java version on all archs
+
+ -- Gert Wollny <gewo at debian.org> Mon, 02 Apr 2018 19:12:36 +0200
+
gdcm (2.8.4-1) unstable; urgency=medium
* New upstream version 2.8.4
=====================================
debian/control
=====================================
--- a/debian/control
+++ b/debian/control
@@ -8,26 +8,26 @@ Uploaders: Andreas Tille <tille at debian.org>,
Gert Wollny <gewo at debian.org>
Build-Depends: cmake (>= 2.8.9),
debhelper (>= 11),
- openjdk-8-jdk,
+ default-jdk,
dh-strip-nondeterminism,
dh-python,
- python-all-dev,
+ python3-all-dev,
pvrg-jpeg,
uuid-dev,
libz-dev,
libexpat-dev,
swig3.0,
javahelper,
- libvtk6-dev,
+ libvtk7-dev,
libcharls-dev (>= 1.1.0),
libopenjp2-7-dev,
- libvtk6-java,
+ libvtk7-java,
libxml2-dev,
libjson-c-dev,
libpoppler-private-dev,
libssl-dev,
ninja-build,
- python-vtk6,
+ python3-vtk7 (>= 7.1.1-1~exp4),
castxml,
libsocket++-dev,
libpapyrus3-dev,
@@ -35,14 +35,13 @@ Build-Depends: cmake (>= 2.8.9),
mono-devel (>= 2.10.5) [amd64 armel armhf i386 mipsel kfreebsd-amd64 kfreebsd-i386 powerpc ppc64 ppc64el s390x arm64],
xsltproc,
docbook-xsl-ns
-Build-Depends-Indep: vtk6-doc,
+Build-Depends-Indep: vtk7-doc,
doxygen,
doxygen-latex,
ghostscript,
graphviz
Build-Conflicts: libopenjpeg-dev
Standards-Version: 4.1.4
-X-Python-Version: 2.7
Vcs-Browser: https://salsa.debian.org/med-team/gdcm
Vcs-Git: https://salsa.debian.org/med-team/gdcm.git
Homepage: http://gdcm.sourceforge.net/
@@ -101,10 +100,10 @@ Description: Grassroots DICOM CLI bindings
CLI bindings to the GDCM DICOM library. It allows developers to use
GDCM from C# environment.
-Package: python-gdcm
+Package: python3-gdcm
Section: python
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, libgdcm2.8 (= ${binary:Version})
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, libgdcm2.8 (= ${binary:Version})
Provides: ${python:Provides}
Description: Grassroots DICOM Python bindings
Grassroots DiCoM is a C++ library for DICOM medical files. It is
@@ -151,12 +150,12 @@ Description: Grassroots DICOM VTK CLI bindings
.
VTK CLI bindings to the GDCM DICOM library.
-Package: python-vtkgdcm
+Package: python3-vtkgdcm
Section: python
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, libvtkgdcm2.8 (= ${binary:Version})
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, libvtkgdcm2.8 (= ${binary:Version})
Provides: ${python:Provides}
-Suggests: python-gdcm
+Suggests: python3-gdcm
Description: Grassroots DICOM VTK/Python bindings
Grassroots DiCoM is a C++ library for DICOM medical files. It is
automatically wrapped to python/C#/Java (using swig). It supports
=====================================
debian/control.in
=====================================
--- a/debian/control.in
+++ b/debian/control.in
@@ -7,8 +7,8 @@ Uploaders: Andreas Tille <tille at debian.org>,
Sébastien Jodogne <s.jodogne at gmail.com>,
Gert Wollny <gewo at debian.org>
Build-Depends: cmake (>= 2.8.9),
- debhelper (>= 9),
- openjdk-8-jdk,
+ debhelper (>= 11),
+ default-jdk,
dh-strip-nondeterminism,
dh-python,
python-all-dev,
=====================================
debian/gdcm-doc.doc-base
=====================================
--- a/debian/gdcm-doc.doc-base
+++ b/debian/gdcm-doc.doc-base
@@ -9,4 +9,4 @@ Index: /usr/share/doc/gdcm-doc/html/index.xhtml
Files: /usr/share/doc/gdcm-doc/html/*
Format: PDF
-Files: /usr/share/doc/gdcm-doc/gdcm-2.8.6.pdf
+Files: /usr/share/doc/gdcm-doc/gdcm-2.8.7.pdf
=====================================
debian/patches/03_linkvtkdoc.patch
=====================================
--- a/debian/patches/03_linkvtkdoc.patch
+++ b/debian/patches/03_linkvtkdoc.patch
@@ -1,6 +1,5 @@
-Description: Correct use of scripts from vtk6-doc
- In vtk6-doc these scripts are installed compresses. The patch
- takes care of providing uncompressed versions.
+Description: Correct use of scripts from vtk7-doc
+ In vtk7-doc these scripts are installed uncompressed.
In addition the patch changes the vtk doxygen source directory and
incorporates an patch to link to the VTK doc and replace PNG by SVG,
Merged to one patch because they overlap partially.
@@ -25,8 +24,8 @@ Author: Gert Wollny <gw.fossdev at gmail.com>, Mathieu Malaterre <malat at debian.org>
- set(DOXYGEN_SOURCE_DIR "/usr/share/doc/vtk-doc/html")
- elseif(EXISTS "/usr/share/doc/vtk6-doc/doxygen")
- set(DOXYGEN_SOURCE_DIR "/usr/share/doc/vtk6-doc/doxygen")
-+ if(EXISTS "/usr/share/vtk-6.3/doxygen")
-+ set(DOXYGEN_SOURCE_DIR "/usr/share/vtk-6.3/doxygen")
++ if(EXISTS "/usr/share/vtk-7.1/doxygen")
++ set(DOXYGEN_SOURCE_DIR "/usr/share/vtk-7.1/doxygen")
else()
- message(WARNING "DOXYGEN_SOURCE_DIR need to be set.")
+ message("DOXYGEN_SOURCE_DIR need to be set.")
=====================================
debian/patches/add_cxx11_vtk_defines.patch
=====================================
--- /dev/null
+++ b/debian/patches/add_cxx11_vtk_defines.patch
@@ -0,0 +1,34 @@
+Author: Gert Wollny <gewo at debian.org>
+Description: Add VTK defines for C++11 constructs to the swig interface file
+--- a/Utilities/VTK/vtkgdcm.i
++++ b/Utilities/VTK/vtkgdcm.i
+@@ -31,12 +31,17 @@
+ #endif
+
+ %{
+-//#define VTK_MAJOR_VERSION 6
+-//#define VTK_MINOR_VERSION 2
+-//#define VTK_BUILD_VERSION 0
+-//#define VTK_VERSION "6.2.0"
++//#define VTK_MAJOR_VERSION 7
++//#define VTK_MINOR_VERSION 1
++//#define VTK_BUILD_VERSION 1
++//#define VTK_VERSION "7.1.1"
+ %}
+
++#define VTK_OVERRIDE override
++#define VTK_FINAL final
++#define VTK_DELETE_FUNCTION = delete
++#define VTK_NEWINSTANCE
++#define VTK_LEGACY(X)
+
+ %{
+ // Let's reproduce the stack of include, when one would include vtkSetGet:
+@@ -118,7 +123,6 @@
+ #endif
+
+
+-
+ #define GDCM_EXPORT
+ #define VTK_EXPORT
+ #define VTK_COMMON_EXPORT
=====================================
debian/patches/fix-vtkjava-build-dir.patch
=====================================
--- /dev/null
+++ b/debian/patches/fix-vtkjava-build-dir.patch
@@ -0,0 +1,14 @@
+Author: Gert Wollny <gewo at debian.org>
+Description: Newer java compiler versions need some output dir specification
+Debian-Bug: https://bugs.debian.org/894371
+--- a/Utilities/VTK/CMakeLists.txt
++++ b/Utilities/VTK/CMakeLists.txt
+@@ -691,7 +691,7 @@
+ #COMMAND ${Java_JAVAC_EXECUTABLE} ARGS -cp ${GDCM_VTK_JAVA_JAR} "vtk/*.java"
+ # No such thing as -cp for javac only java is listed:
+ # http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html
+- COMMAND ${Java_JAVAC_EXECUTABLE} ARGS ${jflags} -source ${GDCM_JAVA_SOURCE_VERSION} -target ${GDCM_JAVA_TARGET_VERSION} -classpath ${GDCM_VTK_JAVA_JAR} "vtk/*.java"
++ COMMAND ${Java_JAVAC_EXECUTABLE} ARGS ${jflags} -source ${GDCM_JAVA_SOURCE_VERSION} -target ${GDCM_JAVA_TARGET_VERSION} -classpath ${GDCM_VTK_JAVA_JAR} -d . "vtk/*.java"
+ COMMAND ${Java_JAR_EXECUTABLE} ARGS -cvfm ${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.jar ${CMAKE_CURRENT_SOURCE_DIR}/manifest.txt vtk/*.class
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/java
+ DEPENDS ${VTKGDCM_NAME}Java
=====================================
debian/patches/gdcm-fix-xslt-maxdepth.patch
=====================================
--- /dev/null
+++ b/debian/patches/gdcm-fix-xslt-maxdepth.patch
@@ -0,0 +1,12 @@
+Description: Force maxdepth for xsltproc
+
+--- gdcm-2.8.4/Utilities/doxygen/CMakeLists.txt 2017-11-09 09:09:58.000000000 +0100
++++ gdcm-2.8.4.new/Utilities/doxygen/CMakeLists.txt 2018-02-09 23:16:12.067080033 +0100
+@@ -253,6 +253,7 @@
+ set(XSLT_PROCESSOR ${LIBXSLT_XSLTPROC_EXECUTABLE})
+ # http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.quietly.html
+ set(XSLT_PROCESSOR_ARG --param man.output.quietly 1)
++ set(XSLT_PROCESSOR_ARG --maxdepth 5000)
+ # User can change the behavior at cmake time:
+ if(NOT DEFINED GDCM_MANPAGES_USE_NONET)
+ set(GDCM_MANPAGES_USE_NONET FALSE)
=====================================
debian/patches/series
=====================================
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,6 @@ use_system_findjni.patch
unforce_cxx98.patch
use_swig_add_library_for_csharp.patch
enable_ninja_build.patch
+gdcm-fix-xslt-maxdepth.patch
+fix-vtkjava-build-dir.patch
+add_cxx11_vtk_defines.patch
=====================================
debian/python-gdcm.install deleted
=====================================
--- a/debian/python-gdcm.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/python*/dist-packages/gdcm.py
-usr/lib/python*/dist-packages/gdcmswig.py
-usr/lib/python*/dist-packages/_gdcmswig.so*
=====================================
debian/python-vtkgdcm.install deleted
=====================================
--- a/debian/python-vtkgdcm.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/python*/dist-packages/vtkgdcm.py
-usr/lib/python*/dist-packages/libvtkgdcmPython.so*
-usr/lib/*/libvtkgdcmPythonD.so*
=====================================
debian/python3-gdcm.install
=====================================
--- /dev/null
+++ b/debian/python3-gdcm.install
@@ -0,0 +1,3 @@
+usr/lib/python3*/dist-packages/gdcm.py
+usr/lib/python3*/dist-packages/gdcmswig.py
+usr/lib/python3*/dist-packages/_gdcmswig.so*
=====================================
debian/python3-vtkgdcm.install
=====================================
--- /dev/null
+++ b/debian/python3-vtkgdcm.install
@@ -0,0 +1,2 @@
+usr/lib/python3*/dist-packages/vtkgdcm*
+usr/lib/*/libvtkgdcmPythonD.so*
=====================================
debian/python-vtkgdcm.lintian-overrides → debian/python3-vtkgdcm.lintian-overrides
=====================================
--- a/debian/python-vtkgdcm.lintian-overrides
+++ b/debian/python3-vtkgdcm.lintian-overrides
@@ -1,11 +1,11 @@
#
# This is a C++ library, using symbols files here is quite a challange
#
-python-vtkgdcm: no-symbols-control-file
+python3-vtkgdcm: no-symbols-control-file
# This package provids a helper library for Python bindings
-python-vtkgdcm: package-name-doesnt-match-sonames
+python3-vtkgdcm: package-name-doesnt-match-sonames
# This seems to be needed for the python module
-python-vtkgdcm: non-dev-pkg-with-shlib-symlink
+python3-vtkgdcm: non-dev-pkg-with-shlib-symlink
=====================================
debian/rules
=====================================
--- a/debian/rules
+++ b/debian/rules
@@ -46,11 +46,11 @@ else
endif
%:
- dh $@ $(WITH_CLI) --with python2 --with javahelper --buildsystem=cmake+ninja
+ dh $@ $(WITH_CLI) --with python3 --with javahelper --buildsystem=cmake+ninja
-PYVER := $(shell pyversions -dv)
-PYMODDIR := /usr/lib/$(shell pyversions -r)
-VTKVERS=$(shell apt-cache policy libvtk6-dev | grep "Installed:" | cut -d: -f2 | cut -d' ' -f2 | cut -d- -f1 | cut -d. -f1-2)
+PYVER := $(shell py3versions -dv)
+PYMODDIR := /usr/lib/$(shell py3versions -r)
+VTKVERS=$(shell apt-cache policy libvtk7-dev | grep "Installed:" | cut -d: -f2 | cut -d' ' -f2 | cut -d- -f1 | cut -d. -f1-2)
# GDCM_DOCUMENTATION:BOOL=ON is required to build man page (build target)
# Need to make sure to build using the same vtk/python version:
@@ -94,7 +94,7 @@ CMAKE_EXTRA_FLAGS += -DCMAKE_SKIP_RPATH=ON \
-DGDCM_NO_VTKJAVA_LIBS_LINKING:BOOL=ON \
-DGDCM_INSTALL_LIB_DIR:STRING=lib/$(DEB_HOST_MULTIARCH) \
-DGDCM_USE_VTK:BOOL=ON \
- -DVTK_JAVA_JAR=/usr/share/java/vtk6.jar
+ -DVTK_JAVA_JAR=/usr/share/java/vtk7.jar
override_dh_auto_configure:
View it on GitLab: https://salsa.debian.org/med-team/gdcm/compare/75a7c328a6d2b049b963ad1fef7671274088d8ca...b2a6b56272c209d6ab3f196f1fa2efad35f6242e
--
View it on GitLab: https://salsa.debian.org/med-team/gdcm/compare/75a7c328a6d2b049b963ad1fef7671274088d8ca...b2a6b56272c209d6ab3f196f1fa2efad35f6242e
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/20180630/8c8e7a11/attachment-0001.html>
More information about the debian-med-commit
mailing list