Thanks Yarik, but too late ;) Anyway, I have a patch (see below) that appears to work. I'll be rolling a small bugfix release of CMTK in the next few days if/when I get a chance.
Index: core/apps/dcm2image.cxx =================================================================== --- core/apps/dcm2image.cxx (revision 5439) +++ core/apps/dcm2image.cxx (working copy) @@ -82,7 +82,11 @@ const std::string tagName( pattern, static_cast<size_t>( equals-pattern ) ); const DcmDictEntry* dictEntry = dcmDataDict.rdlock().findEntry( tagName.c_str() ); +#if PACKAGE_VERSION_NUMBER < 364 dcmDataDict.unlock(); +#else + dcmDataDict.rdunlock(); +#endif if ( dictEntry ) { @@ -482,7 +486,11 @@ #ifdef CMTK_DCMDICTPATH if ( dcmDataDict.wrlock().loadDictionary( CMTK_DCMDICTPATH ) ) { +#if PACKAGE_VERSION_NUMBER < 364 dcmDataDict.unlock(); +#else + dcmDataDict.wrunlock(); +#endif } else #endif @@ -489,7 +497,11 @@ #ifdef CMTK_DCMDICTPATH_INSTALL if ( dcmDataDict.wrlock().loadDictionary( CMTK_DCMDICTPATH_INSTALL ) ) { +#if PACKAGE_VERSION_NUMBER < 364 dcmDataDict.unlock(); +#else + dcmDataDict.wrunlock(); +#endif } else #endif @@ -566,9 +578,17 @@ if ( !dcmDataDict.rdlock().findEntry( "RawDataType_ImageType" ) ) { +#if PACKAGE_VERSION_NUMBER < 364 dcmDataDict.unlock(); +#else + dcmDataDict.rdunlock(); +#endif dcmDataDict.wrlock().addEntry( new DcmDictEntry( 0x0043, 0x102f, EVR_SS, "RawDataType_ImageType", 1, 1, NULL, OFFalse, "GE" ) ); +#if PACKAGE_VERSION_NUMBER < 364 dcmDataDict.unlock(); +#else + dcmDataDict.wrunlock(); +#endif } VolumeList volumeList( Tolerance ); =================================================================== On Mon, Jan 21, 2019 at 8:08 PM Yaroslav Halchenko <deb...@onerussian.com> wrote: > > On Mon, 21 Jan 2019, Torsten Rohlfing wrote: > > > Hi there - > > Upstream owner of CMTK here. It looks like DCMTK in release 3.6.4 > changed > > their API for locking/unlocking the global data dictionary. > > I am going to look into fixing this, but it'll take a while since I'll > > have to set up a suitable Debian VM for testing first. > > docker run -it --rm debian:sid > > adjust /etc/apt/sources.list to include deb-src entries > > apt-get update > apt-get build-dep cmtk > > and you should be all set ;) > > -- > Yaroslav O. Halchenko > Center for Open Neuroscience http://centerforopenneuroscience.org > Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755 > Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419 > WWW: http://www.linkedin.com/in/yarik >