Code Monkey home page Code Monkey logo

Comments (21)

jcfr avatar jcfr commented on August 24, 2024

Thanks for reporting the problem.

Are you building Slicer with the docker image ? Could you provide more details to reproduce the problem ?

from slicerbuildenvironment.

fedorov avatar fedorov commented on August 24, 2024

@DarekDev do you have ICU installed on the system? Did you change anything in the default config settings of Slicer?

I recall in the past people experienced issues on the systems that had ICU or iconv, don't remember exactly, preinstalled.

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

Are you building Slicer with the docker image? Could you provide more details to reproduce the problem?

Yes and I run building script from wiki page:

#!/bin/bash
ROOT_DIR=/mnt/plextor/medical/Slicer4.10
DOCKER_IMAGE=buildenv-qt5-
centos7
mkdir -p $ROOT_DIR
cd ${ROOT_DIR}
svn co http://svn.slicer.org/Slicer4/branches/Slicer-4-10 Slicer -r  27501

docker run --rm slicer/${DOCKER_IMAGE} > ~/bin/slicer-${DOCKER_IMAGE}
chmod u+x ~/bin/slicer-${DOCKER_IMAGE}

# Configure Slicer
slicer-${DOCKER_IMAGE} cmake \
  -BSlicer-build -HSlicer \
  -GNinja \
  -DCMAKE_BUILD_TYPE:STRING=Release \
  -DBUILD_TESTING:BOOL=OFF \
  -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF \
  -DSlicer_BUILD_CLI:BOOL=OFF \
  -DSlicer_USE_SimpleITK:BOOL=OFF \
  -DSlicer_EXTENSION_SOURCE_DIRS:STRING=${Slicer_EXTENSION_SOURCE_DIRS} \
  -DSlicer_VTK_VERSION_MAJOR:STRING=9 \
  -DSlicer_REQUIRED_QT_VERSION:STRING=5

# Build Slicer
slicer-${DOCKER_IMAGE} cmake --build Slicer-build

# Package Slicer
slicer-${DOCKER_IMAGE} cmake --build Slicer-build/Slicer-build --target package

@DarekDev do you have ICU installed on the system? Did you change anything in the default config settings of Slicer?

Do I need ICU on the host system? Probably not.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Are you building Slicer with the docker image?

and I run building script from wiki page

Could you point us to the wiki page, we need to update it.

Yes and I run building script

starting with Slicer 4.10, -DSlicer_VTK_VERSION_MAJOR:STRING=9 must be changed into -DSlicer_VTK_VERSION_MAJOR:STRING=8

For reference, here are the scripts we used to create the release package:

Do I need ICU on the host system?

You are correct, beside of docker, git and bash, no other library or executable are required on the host.

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

Are you building Slicer with the docker image?

and I run building script from wiki page

Could you point us to the wiki page, we need to update it.

https://github.com/Slicer/SlicerBuildEnvironment#configure-build-and-package-slicer-for-linux

And why version 8? I need 9 for SlicerJupyter:
https://github.com/Slicer/SlicerJupyter#build-instructions

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

And why version 8? I need 9 for SlicerJupyter:

VTK8 is the latest version of VTK, it was recently changed changed from 8 to 9 in the development branch of VTK. See http://vtk.1045678.n5.nabble.com/Re-Discussion-OK-to-change-VTK-s-version-number-from-9-0-to-8-2-td5748714.html and http://vtk.1045678.n5.nabble.com/Re-vtkusers-Discussion-OK-to-change-VTK-s-version-number-from-9-0-to-8-2-td5748705.html

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

Change to 8 but still same error.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Make sure you remove the Slicer-build directory first.

Running the following confirmed it worked

Note that I also:

  • added the DOCKER_TAG variable to specify the tag for the docker image user to build Slicer 4.10
  • remove the option Slicer_USE_PYTHONQT_WITH_TCL, set to OFF by default in Slicer 4.10 and above
ROOT_DIR=/tmp/test-slicer-4.10-build
DOCKER_IMAGE=buildenv-qt5-centos7
DOCKER_TAG=slicer-4.10
mkdir -p $ROOT_DIR
cd ${ROOT_DIR}
svn co http://svn.slicer.org/Slicer4/branches/Slicer-4-10 Slicer -r  27501

docker run --rm slicer/${DOCKER_IMAGE}:${DOCKER_TAG} > ~/bin/slicer-${DOCKER_IMAGE}-${DOCKER_TAG}
chmod u+x ~/bin/slicer-${DOCKER_IMAGE}-${DOCKER_TAG}

# Configure Slicer
slicer-${DOCKER_IMAGE}-${DOCKER_TAG} cmake \
  -BSlicer-build -HSlicer \
  -GNinja \
  -DCMAKE_BUILD_TYPE:STRING=Release \
  -DBUILD_TESTING:BOOL=OFF \
  -DSlicer_BUILD_CLI:BOOL=OFF \
  -DSlicer_USE_SimpleITK:BOOL=OFF \
  -DSlicer_EXTENSION_SOURCE_DIRS:STRING=${Slicer_EXTENSION_SOURCE_DIRS} \
  -DSlicer_VTK_VERSION_MAJOR:STRING=8 \
  -DSlicer_REQUIRED_QT_VERSION:STRING=5

# Build DMCTK
slicer-${DOCKER_IMAGE}-${DOCKER_TAG} cmake --build Slicer-build --target DCMTK
[...]
-- Generating done
-- Build files have been written to: /work/Slicer-build/DCMTK-build
[15/18] Performing build step for 'DCMTK'
[1229/1229] Creating library symlink lib/libdcmpmap.so.13 lib/libdcmpmap.so
[16/18] No install step for 'DCMTK'
[18/18] Completed 'DCMTK'

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

Still nothing.
I always make a clean building process.
The best thing is that this is docker image same as you have.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Here is a gist with two CMakeCache.txt:

  • top-level CMakeCache.txt
  • DCMTK-build/CMakeCache.txt

https://gist.github.com/jcfr/4031c2198bbf22dae7651aa94e2547e6

It may be worth comparing with yours.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Also just realized the version of my docker images were not matching the latest one:

slicer/buildenv-qt5-centos7   latest              3ed35ce3b252        5 weeks ago         1.453 GB
slicer/buildenv-qt5-centos7   slicer-4.10         640068f315ef        5 weeks ago         1.453 GB

https://microbadger.com/images/slicer/buildenv-qt5-centos7

from slicerbuildenvironment.

fedorov avatar fedorov commented on August 24, 2024

Do I need ICU on the host system?
You are correct, beside of docker, git and bash, no other library or executable are required on the host.

I was not saying you need ICU. What I meant to say is that if you have ICU installed on the system, it may cause config/build problems for Slicer. Sorry for the confusion.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Also just realized the version of my docker images were not matching the latest one:

Seems microbadger is off, I was using the latest version.

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

Here is a gist with two CMakeCache.txt:

* top-level CMakeCache.txt

* DCMTK-build/CMakeCache.txt

https://gist.github.com/jcfr/4031c2198bbf22dae7651aa94e2547e6

It may be worth comparing with yours.

I have difference. For example:

diff CMakeCacheMY.txt CMakeCacheYOUR.txt   
272c272
< DCMTK_ENABLE_CHARSET_CONVERSION:STRING=ICU
---
> DCMTK_ENABLE_CHARSET_CONVERSION:STRING=stdlibc (iconv)
353,354c353
< //Configure DCMTK with support for ICU.
< DCMTK_WITH_ICU:BOOL=ON
---
> DCMTK_WITH_ICU:BOOL=OFF
418c417
< ICU_ICU-CONFIG_EXECUTABLE:FILEPATH=/usr/bin/icu-config
---
> ICU_ICU-CONFIG_EXECUTABLE:FILEPATH=ICU_ICU-CONFIG_EXECUTABLE-NOTFOUND
421c420
< ICU_ICUINFO_EXECUTABLE:FILEPATH=/usr/bin/icuinfo
---
> ICU_ICUINFO_EXECUTABLE:FILEPATH=ICU_ICUINFO_EXECUTABLE-NOTFOUND
427c426
< ICU_INCLUDE_DIR:PATH=/usr/include
---
> ICU_INCLUDE_DIR:PATH=ICU_INCLUDE_DIR-NOTFOUND
433c432
< ICU_MAKEFILE_INC:FILEPATH=/usr/lib64/icu/50.1.2/Makefile.inc
---
> ICU_MAKEFILE_INC:FILEPATH=ICU_MAKEFILE_INC-NOTFOUND
439c438
< ICU_PKGDATA_INC:FILEPATH=/usr/lib64/icu/50.1.2/pkgdata.inc
---
> ICU_PKGDATA_INC:FILEPATH=ICU_PKGDATA_INC-NOTFOUND
655c654
< ofstd_LIB_DEPENDS:STATIC=general;/opt/qt/5.11.2/gcc_64/lib/libicuuc.so;general;/opt/qt/5.11.2/gcc_64/lib/libicudata.so;general;nsl;general;pthread;
---
> ofstd_LIB_DEPENDS:STATIC=general;nsl;general;pthread;
857c856
< DCMTK_ENABLE_CHARSET_CONVERSION-STRINGS:INTERNAL=ICU;stdlibc (iconv);<disabled>
---
> DCMTK_ENABLE_CHARSET_CONVERSION-STRINGS:INTERNAL=stdlibc (iconv);<disabled>
916c915
< DCMTK_LIBRARY_DEPENDENCIES:INTERNAL=/opt/qt/5.11.2/gcc_64/lib/libicuuc.so;/opt/qt/5.11.2/gcc_64/lib/libicudata.so;nsl;pthread
---
> DCMTK_LIBRARY_DEPENDENCIES:INTERNAL=nsl;pthread

But why there are differences? Its same image and Slicer repository.

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Making progress.

For some reason, these executables: /usr/bin/icuinfo /usr/bin/icuinfo are in your docker images, could you run the following:

docker images slicer/buildenv-qt5-centos7:slicer-4.10

and confirm that the image id is 640068f315ef

Then, could you run the following:

docker run --rm -ti  slicer/buildenv-qt5-centos7:slicer-4.10 bash -c "cd /; find . | grep icu"

I expect the output to be:

./opt/qt/5.11.2/gcc_64/lib/libicudata.so
./opt/qt/5.11.2/gcc_64/lib/libicuuc.so.56
./opt/qt/5.11.2/gcc_64/lib/libicule.so
./opt/qt/5.11.2/gcc_64/lib/libicutu.so
./opt/qt/5.11.2/gcc_64/lib/libicule.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libicuio.so
./opt/qt/5.11.2/gcc_64/lib/libicui18n.so.56
./opt/qt/5.11.2/gcc_64/lib/libicule.so.56
./opt/qt/5.11.2/gcc_64/lib/libicudata.so.56
./opt/qt/5.11.2/gcc_64/lib/libicui18n.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libiculx.so
./opt/qt/5.11.2/gcc_64/lib/libicutu.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libiculx.so.56
./opt/qt/5.11.2/gcc_64/lib/libicuuc.so
./opt/qt/5.11.2/gcc_64/lib/libicui18n.so
./opt/qt/5.11.2/gcc_64/lib/libicudata.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libicutu.so.56
./opt/qt/5.11.2/gcc_64/lib/libicuio.so.56
./opt/qt/5.11.2/gcc_64/lib/libicutest.so
./opt/qt/5.11.2/gcc_64/lib/libicutest.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libicutest.so.56
./opt/qt/5.11.2/gcc_64/lib/libicuuc.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libicuio.so.56.1
./opt/qt/5.11.2/gcc_64/lib/libiculx.so.56.1
./opt/qt/5.11.2/gcc_64/include/QtFontDatabaseSupport/5.11.2/QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h
./opt/qt/5.11.2/gcc_64/include/QtThemeSupport/5.11.2/QtThemeSupport/private/qgenericunixthemes_p.h
./opt/qt/5.11.2/gcc_64/include/QtEventDispatcherSupport/5.11.2/QtEventDispatcherSupport/private/qgenericunixeventdispatcher_p.h
./opt/qt/5.11.2/gcc_64/include/QtCore/5.11.2/QtCore/private/qicucodec_p.h
./opt/qt/5.11.2/gcc_64/include/QtServiceSupport/5.11.2/QtServiceSupport/private/qgenericunixservices_p.h
./opt/qt/5.11.2/gcc_64/resources/icudtl.dat

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

The answer is yes and yes but when I try this:

slicer-${DOCKER_IMAGE}-${DOCKER_TAG} cmake --build DCMTK

I got this:

Error: /work/DCMTK is not a directory

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

I just edited my previous comment, command should be:

slicer-${DOCKER_IMAGE}-${DOCKER_TAG} cmake --build Slicer-build --target DCMTK

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024
[15/18] Performing build step for 'DCMTK'
[1229/1229] Creating library symlink lib/libdcmpmap.so.13 lib/libdcmpmap.so
[16/18] No install step for 'DCMTK'
[18/18] Completed 'DCMTK'

OK. Now I need to investigate what gone wrong. And how we resolve this problem. :)
Now all targets are building.

And of course, thank you a lot. Its

from slicerbuildenvironment.

jcfr avatar jcfr commented on August 24, 2024

Great 🎉 Keep us posted of your findings

from slicerbuildenvironment.

dmichalskii avatar dmichalskii commented on August 24, 2024

I get before slicer-buildenv-qt5-centos7 Dockerfile with ICU, but I thought that changing Dockerfile(removing line with yum libicu) and building image from Dockerfile overwrite existing image (with the same label and tag). Probably not, because when I set slicer-buildenv-qt5-centos7:slicer4.10 build process go further.

from slicerbuildenvironment.

JamesCTilton avatar JamesCTilton commented on August 24, 2024

I'm having the same problem with my build of Slicer.
I find that I have another version of libicu** in /usr/lib64 that may be conflicting with the Slicer build.
How do I avoid this conflict (setting flag? something else?)

from slicerbuildenvironment.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.