Comments (21)
Thanks for reporting the problem.
Are you building Slicer with the docker image ? Could you provide more details to reproduce the problem ?
from slicerbuildenvironment.
@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.
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.
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:
- https://github.com/Slicer/DashboardScripts/blob/master/metroplex-slicer_4100_release_package.sh
- https://github.com/Slicer/DashboardScripts/blob/master/metroplex-slicer_4100_release_package.cmake
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.
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.
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.
Change to 8 but still same error.
from slicerbuildenvironment.
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.
Still nothing.
I always make a clean building process.
The best thing is that this is docker image same as you have.
from slicerbuildenvironment.
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.
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.
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.
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.
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.
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.
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.
I just edited my previous comment, command should be:
slicer-${DOCKER_IMAGE}-${DOCKER_TAG} cmake --build Slicer-build --target DCMTK
from slicerbuildenvironment.
[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.
Great 🎉 Keep us posted of your findings
from slicerbuildenvironment.
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.
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)
- qt5-centos7: Missing pulse, libXcomposite, libXcursor, libXtst, libXrandr and libEGL HOT 1
- DCMTK can't build do to conflict with ICU HOT 9
- Issues with qt 5.15 on linux HOT 17
- Ensure DEFAULT_DOCKCROSS_IMAGE is correctly set in image script
- Graphics tests support tasks HOT 1
- documentation for building / using the qt5 image locally
- Question about packaging extensions HOT 3
- DOC: Script to build qt5 image, bundling external modules.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slicerbuildenvironment.