Page MenuHomePhabricator

DCMQI build fails on ubuntu
Closed, ResolvedPublic

Description

See attached build log. Compiler: gcc 7.0.1

Revisions and Commits

Event Timeline

neher triaged this task as Normal priority.Apr 12 2018, 1:10 PM
neher created this task.

I ran into the same problem on Debian/Gnu Linux, on both "buster" and "sid", i.e. testing and unstable, using g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 compiler.

scoped_ptr is deprecated(Where? Why? I forgot, sorry),
using unique_ptr instead of scoped_ptr compiles fine.

See also: https://www.boost.org/doc/libs/1_67_0/libs/smart_ptr/doc/html/smart_ptr.html

I patched it directly in the superbuild directory,

ep/src/DCMQI/jsoncpp/jsoncpp.cpp:

diff --git a/jsoncpp/jsoncpp.cpp b/jsoncpp/jsoncpp.cpp
index dd2a1e3..d18ca40 100644
--- a/jsoncpp/jsoncpp.cpp
+++ b/jsoncpp/jsoncpp.cpp
@@ -231,7 +231,7 @@ static int       stackDepth_g = 0;  // see readValue()
 namespace Json {
 
 #if __GNUC__ >= 6
-typedef std::scoped_ptr<CharReader> const  CharReaderPtr;
+typedef std::unique_ptr<CharReader> const  CharReaderPtr;
 #else
 typedef std::auto_ptr<CharReader>          CharReaderPtr;
 #endif
@@ -3800,7 +3800,7 @@ Value& Path::make(Value& root) const {
 namespace Json {
 
 #if __GNUC__ >= 6
-typedef std::scoped_ptr<StreamWriter> const  StreamWriterPtr;
+typedef std::unique_ptr<StreamWriter> const  StreamWriterPtr;
 #else
 typedef std::auto_ptr<StreamWriter>          StreamWriterPtr;
 #endif
kislinsk added a subscriber: kislinsk.

As it possibly results in an upgrade of DCMQI, I move this one to the blocking beta column on the release workboard,

I talked to @metzger. Apparently we use a fork of DCMQI by @nolden. So we can go the fast way for now and patch it there. Even without coding it should be possible to hand in the patch above via the web UI and it probably can be merged by a click on a button in the web UI, too.

Ok, I updated my fork to use the latest DCMQI with our modifications as well as a new jsoncpp version which solves the compilation issues. As a side effect, we have to update DCMTK, but I think it should be worth it before the release.

@kislinsk : I will push an update here, but it uses git for the DCMTK source code, instead of a tarball. If that's not desired, could you change it and create a tarball?

nolden added a revision: Restricted Differential Revision.Jun 26 2018, 7:01 PM

And another thing: update requires clean builds of DCMQI and DCMTK, so continuous clients will probably fail