Compilation error in OrthancWebViewer

Hi,
hope this is the right forum, as it is an Osimis product.

Got the following compilation error:

[ 187s] [ 97%] Building CXX object CMakeFiles/OrthancWebViewer.dir/Plugin/DecodedImageAdapter.cpp.o
[ 187s] /var/lib/build/ccache/bin/c++ -DBOOST_FILESYSTEM_VERSION=3 -DBOOST_HAS_FILESYSTEM_V3=1 -DJSONCPP_DEPRECATED_STACK_LIMIT=5000 -DORTHANC_API_VERSION=4 -DORTHANC_DATABASE_VERSION=6 -DORTHANC_DEFAULT_DICOM_ENCODING=Encoding_Latin1 -DORTHANC_ENABLE_BASE64=1 -DORTHANC_ENABLE_CIVETWEB=0 -DORTHANC_ENABLE_CURL=0 -DORTHANC_ENABLE_DCMTK=0 -DORTHANC_ENABLE_DCMTK_NETWORKING=0 -DORTHANC_ENABLE_JPEG=0 -DORTHANC_ENABLE_LOCALE=0 -DORTHANC_ENABLE_LOGGING=1 -DORTHANC_ENABLE_LOGGING_PLUGIN=1 -DORTHANC_ENABLE_LOGGING_STDIO=0 -DORTHANC_ENABLE_LUA=0 -DORTHANC_ENABLE_MD5=1 -DORTHANC_ENABLE_MONGOOSE=0 -DORTHANC_ENABLE_PKCS11=0 -DORTHANC_ENABLE_PNG=0 -DORTHANC_ENABLE_PUGIXML=0 -DORTHANC_ENABLE_SQLITE=1 -DORTHANC_ENABLE_SSL=0 -DORTHANC_ENABLE_ZLIB=0 -DORTHANC_HAS_EMBEDDED_RESOURCES=0 -DORTHANC_MAXIMUM_TAG_LENGTH=256 -DORTHANC_PLUGIN_VERSION="2.5" -DORTHANC_SANDBOXED=0 -DORTHANC_SQLITE_VERSION=3028000 -DORTHANC_STANDALONE=1 -DORTHANC_STATIC=0 -DORTHANC_VERSION="1.5.8" -DORTHANC_VERSION_MAJOR=1 -DORTHANC_VERSION_MINOR=5 -DORTHANC_VERSION_REVISION=8 -DOrthancWebViewer_EXPORTS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -I/home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/build/AUTOGENERATED -I/usr/src/orthanc/Resources/CMake/…/… -I/usr/lib64/usr/include/gdcm -isystem /usr/include/gdcm -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DNDEBUG -Wall -Wno-long-long -Wno-variadic-macros -std=c++11 -Wno-deprecated-declarations -O2 -g -DNDEBUG -fPIC -std=gnu++11 -o CMakeFiles/OrthancWebViewer.dir/Plugin/DecodedImageAdapter.cpp.o -c /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp
[ 187s] /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp: In static member function ‘static bool OrthancPlugins::DecodedImageAdapter::EncodeUsingDeflate(Json::Value&, OrthancPlugins::OrthancImageWrapper&)’:
[ 187s] /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp:367:53: error: too few arguments to function ‘void base64_encode(std::__cxx11::string&, const string&)’
[ 187s] result[“Orthanc”][“PixelData”] = base64_encode(z);
[ 187s] ^
[ 187s] In file included from /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp:31:0:
[ 187s] /usr/src/orthanc/Resources/CMake/…/…/Resources/ThirdParty/base64/base64.h:3:6: note: declared here
[ 187s] void base64_encode(std::string& result, const std::string& stringToEncode);
[ 187s] ^~~~~~~~~~~~~
[ 187s] /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp: In static member function ‘static bool OrthancPlugins::DecodedImageAdapter::EncodeUsingJpeg(Json::Value&, OrthancPlugins::OrthancImageWrapper&, uint8_t)’:
[ 187s] /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp:487:56: error: too few arguments to function ‘void base64_encode(std::__cxx11::string&, const string&)’
[ 187s] result[“Orthanc”][“PixelData”] = base64_encode(jpeg);
[ 187s] ^
[ 187s] In file included from /home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/Plugin/DecodedImageAdapter.cpp:31:0:
[ 187s] /usr/src/orthanc/Resources/CMake/…/…/Resources/ThirdParty/base64/base64.h:3:6: note: declared here
[ 187s] void base64_encode(std::string& result, const std::string& stringToEncode);
[ 187s] ^~~~~~~~~~~~~
[ 187s] make[2]: *** [CMakeFiles/OrthancWebViewer.dir/build.make:1564: CMakeFiles/OrthancWebViewer.dir/Plugin/DecodedImageAdapter.cpp.o] Error 1
[ 187s] make[2]: Leaving directory ‘/home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/build’
[ 187s] make[2]: *** Waiting for unfinished jobs…
[ 191s] make[2]: Entering directory ‘/home/abuild/rpmbuild/BUILD/OrthancWebViewer-2.5/build’
[ 191s] [ 96%] Building CXX object CMakeFiles/OrthancWebViewer.dir/Plugin/Plugin.cpp.o

Build target is openSUSE Leap 15.1 , see https://build.opensuse.org/package/live_build_log/home:DocB:Orthanc/orthanc-webviewer/openSUSE_Leap_15.1/x86_64

Any idea?
Thanks!

Hi Axel,

This function signature has changed in this commit
https://bitbucket.org/sjodogne/orthanc/commits/2e7c5c15ba25abd6e12968a2e58f3aea4a2834bd

In the Orthanc-viewer, this has been fixed by the following commit (that occurred after the OrthancWebViewer-2.5 release)
https://bitbucket.org/sjodogne/orthanc-webviewer/commits/47d52db10369cf5b81fe4af626aa1923511c0ca7

Since you’re building OpenSuse Package, I guess you can not use a mainline version of the viewer so one way to fix your issues would be to fix the version of the OrthancFramework you’re using for your compilation. Fixing it to 1.5.5 should to the trick (that’s the version that was available at the time of the OrthancWebViewer-2.5 release)

HTH

Alain.

Hello Alain

Hi Axel,

This function signature has changed in this commit
https://bitbucket.org/sjodogne/orthanc/commits/2e7c5c15ba25abd6e12968a2e58f3aea4a2834bd

In the Orthanc-viewer, this has been fixed by the following commit (that occurred after the OrthancWebViewer-2.5 release)
https://bitbucket.org/sjodogne/orthanc-webviewer/commits/47d52db10369cf5b81fe4af626aa1923511c0ca7

OK…

Since you’re building OpenSuse Package, I guess you can not use a mainline version of the viewer so one way to fix your issues would be to fix the version of the OrthancFramework you’re using for your compilation. Fixing it to 1.5.5 should to the trick (that’s the version that was available at the time of the OrthancWebViewer-2.5 release)

What do you mean by ‘mainline version’? The current development version? This is something I try to avoid :wink:
I will try to apply the patch and see if it works

Thanks for your help!
Axel

Hello Axel,

You’ll find attached to this mail a Dockerfile to compile the Orthanc Web viewer 2.5 on openSUSE Leap 15.1.

HTH,
Sébastien-

Dockerfile (871 Bytes)

build-webviewer.sh (409 Bytes)

Hey Sebastien,