Bug 2056644 - InsightToolkit-devel depends on gdcm-devel, libminc-devel, vxl-devel (and fftw-devel, for ITKFFT)
Summary: InsightToolkit-devel depends on gdcm-devel, libminc-devel, vxl-devel (and fft...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: InsightToolkit
Version: 39
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Igor Raits
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-02-21 17:11 UTC by Laurent Rineau
Modified: 2023-08-16 07:05 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Laurent Rineau 2022-02-21 17:11:47 UTC
Description of problem:

InsightToolkit-devel depends on gdcm-devel, libminc-devel, and vxl-devel but those requirements are not in the package spec file.

Version-Release number of selected component (if applicable):
% rpm -q InsightToolkit-devel                                                                                  
InsightToolkit-devel-4.13.3-7.fc35.x86_64

How reproducible: always


Steps to Reproduce:
1. dnf install cmake InsightToolkit-examples
2. mkdir /tmp/build
3. ITK_DIR=/usr/lib64/cmake/InsightToolkit  cmake -B /tmp/build -S /usr/share/InsightToolkit/examples/Installation

Actual results:

% ITK_DIR=/usr/lib64/cmake/InsightToolkit cmake -B /tmp/build -S /usr/share/InsightToolkit/examples/Installation 
CMake Error at /usr/lib64/cmake/InsightToolkit/Modules/ITKGDCM.cmake:15 (find_package):
  By not providing "FindGDCM.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "GDCM", but
  CMake did not find one.

  Could not find a package configuration file provided by "GDCM" with any of
  the following names:

    GDCMConfig.cmake
    gdcm-config.cmake


Expected results:
No CMake error

Additional info:
After `dnf install gdcm-devel`:

~/tmp/build% ITK_DIR=/usr/lib64/cmake/InsightToolkit cmake -B /tmp/build -S /usr/share/InsightToolkit/examples/Installation
CMake Error at /usr/lib64/cmake/InsightToolkit/Modules/ITKMINC.cmake:15 (find_package):
  By not providing "FindLIBMINC.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "LIBMINC", but
  CMake did not find one.

  Could not find a package configuration file provided by "LIBMINC" with any
  of the following names:

    LIBMINCConfig.cmake
    libminc-config.cmake

Then, after `dnf install libminc-devel`, the CMake run is fine, but:

% cmake --build /tmp/build
[ 50%] Building CXX object CMakeFiles/HelloWorld.dir/HelloWorld.cxx.o
In file included from /usr/include/InsightToolkit/itkConceptChecking.h:32,
                 from /usr/include/InsightToolkit/itkAtomicIntDetail.h:39,
                 from /usr/include/InsightToolkit/itkAtomicInt.h:38,
                 from /usr/include/InsightToolkit/itkTimeStamp.h:33,
                 from /usr/include/InsightToolkit/itkLightObject.h:23,
                 from /usr/include/InsightToolkit/itkObject.h:31,
                 from /usr/include/InsightToolkit/itkRegion.h:31,
                 from /usr/include/InsightToolkit/itkImageRegion.h:31,
                 from /usr/include/InsightToolkit/itkImage.h:21,
                 from /usr/share/InsightToolkit/examples/Installation/HelloWorld.cxx:27:
/usr/include/InsightToolkit/itkNumericTraits.h:51:11: fatal error: vcl_limits.h: No such file or directory
   51 | # include "vcl_limits.h"
      |           ^~~~~~~~~~~~~~


After `dnf install vxl-devel`, there is a link error:

% cmake --build /tmp/build   
[ 50%] Building CXX object CMakeFiles/HelloWorld.dir/HelloWorld.cxx.o
In file included from /usr/include/InsightToolkit/itkNumericTraits.h:51,
                 from /usr/include/InsightToolkit/itkConceptChecking.h:32,
                 from /usr/include/InsightToolkit/itkAtomicIntDetail.h:39,
                 from /usr/include/InsightToolkit/itkAtomicInt.h:38,
                 from /usr/include/InsightToolkit/itkTimeStamp.h:33,
                 from /usr/include/InsightToolkit/itkLightObject.h:23,
                 from /usr/include/InsightToolkit/itkObject.h:31,
                 from /usr/include/InsightToolkit/itkRegion.h:31,
                 from /usr/include/InsightToolkit/itkImageRegion.h:31,
                 from /usr/include/InsightToolkit/itkImage.h:21,
                 from /usr/share/InsightToolkit/examples/Installation/HelloWorld.cxx:27:
/usr/include/vxl/vcl/vcl_limits.h:11:5: warning: #warning "This header will be removed in future versions of VXL.  Use equivalent C++11 header instead. see: vxl/scripts/UseStandardHeaders.py" [-Wcpp]
   11 |   # warning "This header will be removed in future versions of VXL.  Use equivalent C++11 header instead. see: vxl/scripts/UseStandardHeaders.py"
      |     ^~~~~~~
gmake[2]: *** No rule to make target '/usr/lib64/libfftw3.so', needed by 'HelloWorld'.  Stop.

After `dnf install fftw-devel`, there is still an issue, but this one cannot be solved easily:

    /usr/bin/ld: cannot find -lGTest::GTest
    /usr/bin/ld: cannot find -lGTest::Main

For that, we need a small modification of the `CMakeLists.txt`, to search for one ITK component, to exclude the component `ITKGoogleTest`:

    cmake_minimum_required(VERSION 3.1...3.20)
    project(HelloWorld)
    
    find_package(ITK REQUIRED COMPONENTS ITKCommon)
    include(${ITK_USE_FILE})
    
    add_executable(HelloWorld HelloWorld.cxx )
    
    target_link_libraries(HelloWorld ${ITK_LIBRARIES})

Note that `fftw-devel` is only required by the module `ITKFFT` (file /usr/lib64/cmake/InsightToolkit/ITKTargets.cmake). The other dependencies are really mandatory, even for the CMake component `ITKCommon`.

Comment 1 Ben Cotton 2022-11-29 17:56:31 UTC
This message is a reminder that Fedora Linux 35 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 35 on 2022-12-13.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '35'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 35 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 2 Laurent Rineau 2022-11-29 20:14:33 UTC
I can reproduce the same series of bugs with Fedora 36.

Comment 3 Laurent Rineau 2022-11-30 08:26:44 UTC
Applies also to Fedora 37.

Comment 4 Ben Cotton 2023-04-25 16:54:18 UTC
This message is a reminder that Fedora Linux 36 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '36'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 36 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 5 Ben Beasley 2023-04-25 17:12:54 UTC
Updating to Rawhide to avoid auto-closure. I don’t think anything about the situation has changed since the bug was reported.

This package needs some attention; unfortunately, I don’t think anybody has had the cycles to do more than keep it building from source.

Comment 6 Fedora Release Engineering 2023-08-16 07:05:18 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.


Note You need to log in before you can comment on or make changes to this bug.