View Issue Details

IDProjectCategoryView StatusLast Update
0003965Slicer4Core: Building (CMake, Superbuild)public2018-03-02 11:06
ReportermhalleAssigned Tojcfr 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.4.0 
Target VersionSlicer 4.5.0-1Fixed in VersionSlicer 4.5.0-1 
Summary0003965: Qt frameworks not installed correctly in Slicer.app to allow code signing
Description

The Qt frameworks inside Slicer.app aren't installed correctly for 10.8+ code signing.

Basically, for each Qt framework, an Info.plist file from the Qt distribution/build needs to be copied into Versions/4/Resources.

In addition, three symlinks need to be created:
Versions/Current -> Versions/4
Resources -> Versions/Current/Resources
<QtFramework> -> Versions/Current/<QtFramework>

any top level _CodeSigning directory needs to be removed.

See references below.

Additional Information

http://stackoverflow.com/questions/19637131/sign-a-framework-for-osx-10-9
http://blog.qt.io/blog/2014/10/29/an-update-on-os-x-code-signing/

TagsNo tags attached.

Relationships

related to 0002708 resolvedjcfr Gatekeeper - Mac OSX 10.8 - Can't open because it s from an unidentified developer 

Activities

jcfr

jcfr

2015-02-23 19:59

administrator   ~0012930

Hi Michael,

Thanks for investigating the package signing issue.

If you manually create the missing sym links and add the info.plist files where needed, are you able to successfully sign the package ?

mhalle

mhalle

2015-02-24 04:13

developer   ~0012931

Yes, I could sign it with my own Apple Developer ID. Unfortunately, we can't use the signing certificate issued by Digicert. Only Apple Developer IDs are recognized as valid by the Mac OS X Gatekeeper.

We need to figure out details of the workflow (probably creating a slicer.org company developer account), but the technical issues are basically solved.

jcfr

jcfr

2015-02-24 06:01

administrator   ~0012932

Please, test the following topic: https://github.com/jcfr/Slicer/tree/3965-fix-bundled-qt-framework-layout

Could you also add some instruction on the wiki: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/ReleaseProcess#Sign_packages

Kitware may be able to sign the packages, I will check the feasibility. That we would have also this option.

mhalle

mhalle

2015-02-24 18:50

developer   ~0012935

Preliminary testing shows I can sign the resulting binary with my Apple Developer ID certificate without error.

I will document more fully, but the code signing command is of the form:

codesign --deep --force --sign "Developer ID Application: ..." ./Slicer.app

where the argument to --sign is the name of the developer's certificate in Mac OS X Keychain.app .

jcfr

jcfr

2015-02-25 09:30

administrator   ~0012936

Hi Michael,

Thanks for testing. Associated changes have now been integrated.
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23990

Related Changesets

Import 2017-06-07 23:51:09: master 0b6d7cd4

2015-02-25 14:00:33

jcfr

Details Diff
ENH: BundleUtilities: Framework codesign Resources/Info.plist & Current

See Slicer issue 0003965

This commit integrates the upstream change kitware/cmake@83a06bb

//------------
Author: Adam Strzelecki <ono@java.pl> 2014-09-04 09:01:17
Committer: Brad King <brad.king@kitware.com> 2014-10-10 10:17:04

BundleUtilities: Framework codesign Resources/Info.plist & Current

We need to ensure copied framework has proper layout with Resources/Info.plist
present next to versioned binary and Current symlink in Versions:

https://developer.apple.com/library/mac/technotes/tn2206

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

If Resources/ is not present we may try to copy Contents/Info.plist if present
to embedded Resources/Info.plist. This is a case of Qt5 that has
obsolete/invalid framework layout (see QTBUG-38511).
//------------

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23989 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMake/BundleUtilitiesWithRPath.cmake Diff File

Import 2017-06-07 23:51:09: master 52577884

2015-02-25 14:00:34

jcfr

Details Diff
ENH: BundleUtilities: Ensure framework symlinks and Info.plist exist

See Slicer issue 0003965

This commit integrates the upstream change kitware/cmake@41564ff

//----------
Author: Adam Strzelecki <ono@java.pl> 2014-10-21 10:42:33
Committer: Brad King <brad.king@kitware.com> 2014-10-21 11:42:30

BundleUtilities: Ensure framework symlinks and Info.plist exist

This restores Qt SDK 4.8 and OS X >= 10.6.5 codesign compatibility
improving embedding frameworks using correct bundle layout described at:

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

1. If Versions/VERSION/Resources/Info.plist is missing, well known
incorrect locations are checked for Info.plist and Info.plist is
copied from there, otherwise codesign will fail.

2. Root framework symlinks to binary and Resources are restored to
point inside Versions/Current, otherwise Qt 4.8 looking for
Resources/ in framework root will fail.
//----------

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23990 3bd1e089-480b-0410-8dfb-8563597acbee
mod - CMake/BundleUtilitiesWithRPath.cmake Diff File

Import 2017-06-07 23:51:09: master f3783f07

2015-07-07 15:14:07

naucoin

Details Diff
BUG: add Scene null pointer check to copy

Testing showed that Copy can be called when the node isn't in a scene,
added a null pointer check to avoid crashing.

Issue 0003965



git-svn-id: http://svn.slicer.org/Slicer4/trunk@24400 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx Diff File

Import 2017-06-07 23:51:09: master b99ff999

2015-08-11 18:44:45

naucoin

Details Diff
BUG: Update CTK (update message box don't show again)

Among other changes it updates ctkMessageBox to include the
text on the button that will be the default if the don't
show again option is checked.

> git shortlog 7081550..e0c8fd5 --no-merges
Andreas Fetzer (1):
Fixed another qt 5.5 build error

Nicole Aucoin (1):
ENH: Give more information for not showing the message box again

Issue 0003965

git-svn-id: http://svn.slicer.org/Slicer4/trunk@24491 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild/External_CTK.cmake Diff File

Issue History

Date Modified Username Field Change
2015-02-20 12:09 mhalle New Issue
2015-02-20 12:09 mhalle Status new => assigned
2015-02-20 12:09 mhalle Assigned To => jcfr
2015-02-23 19:59 jcfr Note Added: 0012930
2015-02-23 20:00 jcfr Target Version => Slicer 4.5.0-1
2015-02-24 04:13 mhalle Note Added: 0012931
2015-02-24 06:01 jcfr Note Added: 0012932
2015-02-24 18:50 mhalle Note Added: 0012935
2015-02-25 09:30 jcfr Note Added: 0012936
2015-02-25 09:30 jcfr Status assigned => resolved
2015-02-25 09:30 jcfr Fixed in Version => Slicer 4.5.0-1
2015-02-25 09:30 jcfr Resolution open => fixed
2016-01-05 09:16 jcfr Relationship added related to 0002708
2017-06-10 08:51 Changeset attached => Slicer master b99ff999
2017-06-10 08:51 Changeset attached => Slicer master f3783f07
2017-06-10 08:51 jcfr Changeset attached => Slicer master 52577884
2017-06-10 08:51 jcfr Changeset attached => Slicer master 0b6d7cd4
2018-03-02 11:06 jcfr Status resolved => closed