[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Howto prevent viral dependency propagation by ITK or GDCM?



Hi,

thanks Mathieu.


On Thu, Apr 29, 2010 at 12:29:52AM +0200, Mathieu Malaterre wrote:
> > michael@meiner ~/debian/itk-snap/git/build (git)-[debian] % ldd InsightSNAP
> > ...
> >        libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb53c4000)
> >        libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb526c000)
> > ...
> 
> Here is the culprit file:
> 
> $ grep -l ssl /usr/lib/gdcm-2.0/GDCMLibraryDepends.cmake
> /usr/lib/gdcm-2.0/GDCMLibraryDepends.cmake

<snip>

I removed all occurences of ssl and crypto from that file, and it indeed
removed that dependency targets from the generated build.make files.
However, the link.txt removed unchanged. Full grep of the build dir
yields:

obj-i486-linux-gnu/CMakeFiles/snaptest.dir/link.txt:/usr/bin/c++   -g -O2   -ftemplate-depth-50 -Wall -Wno-deprecated   -Wno-deprecated      CMakeFiles/snaptest.dir/Testing/TestMain.cxx.o CMakeFiles/snaptest.dir/Testing/SNAPTestDriver.cxx.o  -o snaptest -rdynamic -L/usr/lib/InsightToolkit -L/usr/lib/vtk-5.2 -lITKAlgorithms -lITKCommon -lITKBasicFilters libitksnapui.a libitksnaplogic.a -lfltk_images -lfltk_forms -lfltk_gl -lGL -lfltk -lSM -lICE -lX11 -lXext -lm -lITKIO -lvtkCommon -lvtkRendering -lvtkFiltering -lvtkGraphics -lvtkImaging -lvtkIO -lGLU -lGL -lSM -lICE -lX11 -lXext -lGLU -lITKAlgorithms -lITKStatistics -litkNetlibSlatec -lITKNumerics -lfftw3 -lfftw3_threads -lfftw3f -lfftw3f_threads -lITKBasicFilters -lITKNrrdIO -lgdcmMSFF -lgdcmDICT -lgdcmIOD -lgdcmDSED -lgdcmCommon -lssl -lcrypto -lgdcmjpeg8 -lgdcmjpeg12 -lgdcmjpeg16 -lopenjpeg -lgdcmcharls -luuid -litkjpeg8 -lITKSpatialObject -lITKCommon -litkvnl_inst -litkvnl_algo -litkv3p_netlib -litkvnl -litkvcl -lm -lITKMetaIO -litksys -lITKDICOMParser -lITKEXPAT -lITKniftiio -lITKznz -lvtkftgl -lfreetype -lXt -lXss -lXft -lvtkverdict -lvtkFiltering -lvtkCommon -lpthread -lm -lvtkDICOMParser -lvtkNetCDF -lvtkmetaio -lvtksqlite -lpng -lz -ljpeg -ltiff -lvtksys -ldl -lexpat -lGL -lSM -lICE -lX11 -lXext -Wl,-rpath,/usr/lib/InsightToolkit:/usr/lib/vtk-5.2 
obj-i486-linux-gnu/CMakeFiles/InsightSNAP.dir/link.txt:/usr/bin/c++   -g -O2   -ftemplate-depth-50 -Wall -Wno-deprecated   -Wno-deprecated      CMakeFiles/InsightSNAP.dir/UserInterface/SNAPMain.cxx.o  -o InsightSNAP -rdynamic -L/usr/lib/InsightToolkit -L/usr/lib/vtk-5.2 -lITKAlgorithms -lITKCommon -lITKBasicFilters Utilities/FLTK/Fl_Native_File_Chooser/libfltk_native_file_chooser.a libitksnapui.a libitksnaplogic.a -lfltk_images -lfltk_forms -lfltk_gl -lGL -lfltk -lSM -lICE -lX11 -lXext -lm -lITKIO -lvtkCommon -lvtkRendering -lvtkFiltering -lvtkGraphics -lvtkImaging -lvtkIO -lGLU -lGL -lSM -lICE -lX11 -lXext -lGLU -lITKAlgorithms -lITKStatistics -litkNetlibSlatec -lITKNumerics -lfftw3 -lfftw3_threads -lfftw3f -lfftw3f_threads -lITKBasicFilters -lITKNrrdIO -lgdcmMSFF -lgdcmDICT -lgdcmIOD -lgdcmDSED -lgdcmCommon -lssl -lcrypto -lgdcmjpeg8 -lgdcmjpeg12 -lgdcmjpeg16 -lopenjpeg -lgdcmcharls -luuid -litkjpeg8 -lITKSpatialObject -lITKCommon -litkvnl_inst -litkvnl_algo -litkv3p_netlib -litkvnl -litkvcl -lm -lITKMetaIO -litksys -lITKDICOMParser -lITKEXPAT -lITKniftiio -lITKznz -lvtkftgl -lfreetype -lXt -lXss -lXft -lvtkverdict -lvtkFiltering -lvtkCommon -lpthread -lm -lvtkDICOMParser -lvtkNetCDF -lvtkmetaio -lvtksqlite -lpng -lz -ljpeg -ltiff -lvtksys -ldl -lexpat -lGL -lSM -lICE -lX11 -lXext -Wl,-rpath,/usr/lib/InsightToolkit:/usr/lib/vtk-5.2:


Do these files have any functional relevance? Yes!

michael@meiner ~/debian/itk-snap/git/build (git)-[debian] % ldd InsightSNAP |grep ssl
        libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb4898000)

I wonder how it gets there:

michael@meiner ~ % grep -l ssl  $(find /usr -name '*.cmake')
/usr/share/cmake-2.8/Modules/FindBLAS.cmake
/usr/share/cmake-2.8/Modules/Qt4ConfigDependentSettings.cmake
/usr/share/cmake-2.8/Modules/FindOpenSSL.cmake

The first is a false-positive and none of the rest is used anywhere in
ITK-SNAP, and moreover:

michael@meiner ~/debian/itk-snap/git/build2 (git)-[debian] % cmake .. --trace 2>&1 | grep ssl

yields nothing.

Confused....

> Mathieu
> Ps: you should see how many dep VTK or ITK are pulling in...

I know. I just noticed that, right now, ITK also shippes duplicate of libnifti
and libznz that are provided by the libnifti1 package in Debian...

Michael


-- 
GPG key:  1024D/3144BE0F Michael Hanke
http://mih.voxindeserto.de


Reply to: