Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1076793 - InsightToolkit bundles multiple system libraries
Summary: InsightToolkit bundles multiple system libraries
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: InsightToolkit
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Igor Raits
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1196766
Blocks: DuplicSysLibsTracker
TreeView+ depends on / blocked
 
Reported: 2014-03-15 08:28 UTC by Ville Skyttä
Modified: 2019-09-21 10:58 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ville Skyttä 2014-03-15 08:28:37 UTC
https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
https://fedoraproject.org/wiki/Packaging:Treatment_Of_Bundled_Libraries

InsightToolkit seems to bundle multiple system libraries, see Modules/ThirdParty in InsightToolkit-debuginfo and Modules/ThirdParty/GDCM/src/gdcm/PACKAGER in its sources.

More specifically, at least these libs exist as separate system ones: expat, gdcm, nifticlib, openjpeg

Comment 1 Mario Ceresa 2014-03-15 10:06:14 UTC
Hi Ville,
thanks for reporting. We really tried to unbundle as much libraries as we could at review time. Please see https://bugzilla.redhat.com/show_bug.cgi?id=539387

The package does bundle copies of system libraries in the directory Modules/ThirdParty but it doesn't use them durign build stage if systemd-wide copies are available (see -DITK_USE_SYSTEM_SOMETHING switches in the spec-file)

We used this approach because upstream ships a very carefully crafted cmake build systems which needed to be patched if we removed the original libraries. I will check again if this is the case with the last version.

I'm reviewing the installed files from the binary package and it seems to me that at least gdcm is correctly linked not bundled.
 
I'll run a more extensive analysis for expat, nifticlib and openjpeg.

Thanks and best regards,

Mario

Comment 2 Ville Skyttä 2014-03-15 10:57:02 UTC
(In reply to Mario Ceresa from comment #1)
> The package does bundle copies of system libraries in the directory
> Modules/ThirdParty but it doesn't use them durign build stage if
> systemd-wide copies are available (see -DITK_USE_SYSTEM_SOMETHING switches
> in the spec-file)

That's not quite enough, the 3rd party sources should be removed in %prep to ensure they don't get accidentally used. See links in the initial comment, specifically https://fedoraproject.org/wiki/Packaging:Treatment_Of_Bundled_Libraries#Packages_with_Bundled_Libraries

> I'll run a more extensive analysis for expat, nifticlib and openjpeg.

Presence of their sources in -debuginfo is a strong indicator that the bundled copies are being used.

$ rpm -qlp http://kojipkgs.fedoraproject.org//packages/InsightToolkit/4.5.1/1.fc21/x86_64/InsightToolkit-debuginfo-4.5.1-1.fc21.x86_64.rpm | grep 'ThirdParty/\(Expat\|NIFTI\|OpenJPEG\)'

Comment 3 Orion Poplawski 2015-02-25 17:12:12 UTC
With current 4.7.0, the actual source files I see in the debuginfo package is:

/usr/src/debug/InsightToolkit-4.7.0/x86_64-redhat-linux-gnu/Modules/ThirdParty/NrrdIO/src/NrrdIO/NrrdIO.h

and a bunch in 

/usr/src/debug/InsightToolkit-4.7.0/x86_64-redhat-linux-gnu/Modules/ThirdParty/KWSys/src/itksys/

which appears to be itk modified code or wrapper.

Would be nice to package nrrd separately, but I'm a bit less worried about it as it is just a header file.

Comment 4 Ville Skyttä 2015-02-25 20:18:30 UTC
I believe you may be looking only at files in /usr/src/debug/InsightToolkit-4.7.0/x86_64-redhat-linux-gnu/Modules/ThirdParty, there's a lot more in /usr/src/debug/InsightToolkit-4.7.0/Modules/ThirdParty: DICOMParser, DoubleConversion, GDCM, GIFTI, KWSys, MetaIO, NIFTI, Netlib, NrrdIO, OpenJPEG, VNLInstantiation

rpm -qlp https://kojipkgs.fedoraproject.org//packages/InsightToolkit/4.7.0/3.fc22/x86_64/InsightToolkit-debuginfo-4.7.0-3.fc22.x86_64.rpm | grep ThirdParty

Comment 5 Orion Poplawski 2015-02-26 18:44:59 UTC
Ah, you are correct.

Started looking at unbundling DoubleConversion, looks like we need to build it with cmake.

Comment 6 Orion Poplawski 2015-02-26 19:08:11 UTC
Using system nifti requires upstream support: https://issues.itk.org/jira/browse/ITK-3349

Comment 7 Orion Poplawski 2015-02-26 22:07:37 UTC
OpenJPEG - https://issues.itk.org/jira/browse/ITK-3350

Comment 8 Orion Poplawski 2015-02-26 22:17:28 UTC
Not yet in Fedora: DICOMParser, GIFTI, KWSys, MetaIO, NrrdIO, Netlib(slatec), VNLInstantiation

Alternative cleanup:

# remove source files of external dependencies that itk gets linked against
# DICOMParser, GIFTI, KWSys, MetaIO, NrrdIO, Netlib, VNLInstantiation are not
# yet in Fedora
# DoubleConversion still seems to need the source present
# NIFTI needs support - https://issues.itk.org/jira/browse/ITK-3349
# OpenJPEG - https://issues.itk.org/jira/browse/ITK-3350
find Modules/ThirdParty/* \( -name DICOMParser -o -name DoubleConversion -o -name GIFTI -o -name KWSys -o -name MetaIO -o -name NIFTI -o -name NrrdIO -o -name Netlib -o -name OpenJPEG -o name VNLInstantiation \) -prune -o -regextype posix-extended -type f \
    -regex ".*\.(h|hxx|hpp|c|cc|cpp|cxx|txx)$" -not -iname "itk*" -print0 | xargs -0 rm -fr

has the advantage of removing any new items that might appear and explicitly listing what is still bundled.

Comment 9 Jaroslav Reznik 2015-03-03 16:59:42 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 10 Dominik 'Rathann' Mierzejewski 2015-08-06 21:23:16 UTC
Another one is kwsys (http://public.kitware.com/gitweb?p=KWSys.git) bundled in Modules/ThirdParty/KWSys. It's declared a copylib by upstream (kitware.com, same as InsightToolkit), but it should be a proper shared library, as it's much too large (though partial bundling is possible) and it seems to be bundled by all projects from kitware.

This came up during the discussion of FPC ticket #555 (https://fedorahosted.org/fpc/ticket/555).

Comment 11 Dominik 'Rathann' Mierzejewski 2015-08-06 21:44:32 UTC
MetaIO can be unbundled, according to: http://www.itk.org/Wiki/MetaIO/Documentation .

Comment 12 Jan Kurik 2016-02-24 13:14:35 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase

Comment 13 Fedora Admin XMLRPC Client 2016-08-30 09:29:29 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 14 Fedora Admin XMLRPC Client 2016-08-30 09:34:54 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 15 Fedora End Of Life 2017-07-25 18:38:37 UTC
This message is a reminder that Fedora 24 is nearing its end of life.
Approximately 2 (two) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 24. 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 Fedora  'version'
of '24'.

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

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 24 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, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 16 Dominik 'Rathann' Mierzejewski 2017-07-25 18:51:54 UTC
Not much progress here, bumping to rawhide to avoid auto closure. Could you at least add the missing Provides: bundled(foo) in the meantime?

Comment 17 Jan Kurik 2017-08-15 07:35:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 27 development cycle.
Changing version to '27'.

Comment 18 Ben Cotton 2018-11-27 14:54:24 UTC
This message is a reminder that Fedora 27 is nearing its end of life.
On 2018-Nov-30  Fedora will stop maintaining and issuing updates for
Fedora 27. 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 Fedora  'version' of '27'.

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

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 27 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, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.


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